format-probes: two adjacent start codes no longer panic the AVS3 probe #586
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/avs3-probe-panic"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A payload with a start code prefix directly after another (
00 00 01 00 00 01) made the AVS3 unit split slice backwards and panic. A hostile payload could stop anything that probed it, andwai.video.avs3andwai.audio.avs3both go through that split.The fix: that unit is now the empty one format-probes §8.2 reads, and the payload is refused because its first unit isn't a sequence header.
How it was found: by
wai identify, still in progress, which runs every probe on whatever file it is given. Its test file happened to hold the pattern.So that it stays found: a new test gives every probe 30,000 payloads of hostile bytes built from what their framing is made of, and another holds adjacent start codes to a refusal for AVS3 video and audio, H.265, H.266 and LCEVC. No other probe panicked. Both tests failed before the fix.
format_probe_verify.pystill passes.🤖 Generated with Claude Code