• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Eyevinn / mp4ff
83%
master: 83%

Build:
Build:
LAST BUILD BRANCH: improve-av1
DEFAULT BRANCH: master
Repo Added 01 Nov 2024 09:40PM UTC
Files 200
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH fix-hevc-ps-dos
branch: fix-hevc-ps-dos
CHANGE BRANCH
x
Reset
  • fix-hevc-ps-dos
  • av1-crypto-rap
  • av1-update
  • avs3
  • chore-bump-min-go-1.18
  • chore-bump-min-go-1.19
  • chore/prepare-v0.53.0
  • codespell
  • colr-icc-decode
  • dac4
  • decode-box-body-sr
  • feat-coll-box
  • feat-hevc-encrypt
  • feat-lbli-sample-group
  • feat-lhvc-box
  • feat-linf-oinf-sample-groups
  • feat-mvhevc-builders
  • feat-mvhevc-cli
  • feat-trgr-track-group
  • feat-vexu-spatial-video
  • feat-vp-codec-sample-box
  • feat-vps-multilayer-extension
  • feat/dolby-vision-dvh1-dvhe
  • feat/hevc-hdr-boxes
  • feat/mov-decoder
  • feat/piff
  • feat/stream-read-mdat-data
  • feature-encryption-boxes
  • feature/exporttfhd
  • fix-avcdecoderconfig
  • fix-co64-size-overflow
  • fix-goreleaser-brew
  • fix-interleaved-sidx-boxes
  • fix-mime-box
  • fix-senc-panic
  • fix-senc-robustness
  • fix-short-esds-issue-393
  • fix-sliceheader-spsid
  • fix-ssix-box
  • fix-stsc
  • fix-subs-box
  • fix-trailing-avc1-bytes
  • fix-typos
  • fix-vps-ols0-necessary-layers
  • fix/cenc-encrypt-conformance
  • fix/cenc-increment
  • flac
  • fuzz-box
  • go-releaser
  • golangci-lint-v2
  • handle-trailing-avc1-bytes
  • hevc-vps
  • iMro0t-feature-encryption-boxes
  • iMro0t-fix-avcdecoderconfig
  • improve-av1
  • improved-crypt-tools
  • issue-492
  • master
  • mdhd-dur-info
  • minimal-ac4
  • more-robust-decode
  • mp4-blackbox-test
  • mpeg-h
  • new-pssh-func
  • opus
  • patch-1
  • release/v0.51.0
  • release/v0.52.0
  • remove-homebrew-cask
  • return-partial-files
  • sampleflags-test
  • sei-recovery-point
  • spherical-v1-no-xml
  • sphericalv1
  • stream-process
  • test-header-parsing
  • test-visualsampleentry
  • update-changelog
  • update-coverage-job
  • update-docs
  • update-make
  • v0.48.0
  • v0.49.0
  • v0.50.0
  • vtpl1-master
  • vvc
  • vvc-nal-headers
  • weird-dac3

03 Jul 2026 12:35PM UTC coverage: 83.489% (+0.3%) from 83.162%
28660937776

Pull #516

github

tobbee
hevc: bound parameter-set parser loops on malformed input (DoS fix)

Several loops in the HEVC SPS/PPS parsers iterate over a count read from the
bitstream (ue(v)/u(n)) without checking the reader's accumulated error. On a
truncated or malformed NAL, EBSPReader.Read returns 0 past end-of-data and sets
its accumulated error, but these loops kept iterating over the (potentially
~2^32) count — effectively hanging and growing unbounded slices. A malformed
parameter set is thus a denial-of-service vector for any caller parsing
untrusted input.

Fixes:
- Add `&& r.AccError() == nil` to every bitstream-count-bounded loop in pps.go
  (tile columns/rows, chroma-QP-offset list, ref-loc offsets, colour-mapping
  ref layers, colour-mapping octants, palette predictor initializers, 3D
  delta-DLT) and sps.go (SCC palette predictor initializers), so parsing stops
  at end-of-data.
- Don't pre-size the RefLocOffsets map from the bitstream-derived count
  (make(map, hugeN) would attempt an enormous allocation); let it grow.

Valid streams are unaffected (they never hit EOF mid-parameter-set). Adds
regression tests (ps_dos_test.go) with fuzz-discovered inputs that hang without
the fix and return promptly with it, plus fuzz targets (ps_fuzz_test.go) and
seed corpus. All existing tests still pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pull Request #516: hevc: bound parameter-set parser loops on malformed input (DoS)

8 of 14 new or added lines in 2 files covered. (57.14%)

21511 of 25765 relevant lines covered (83.49%)

0.93 hits per line

Relevant lines Covered
Build:
Build:
25765 RELEVANT LINES 21511 COVERED LINES
0.93 HITS PER LINE
Source Files on fix-hevc-ps-dos
  • Tree
  • List 193
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28660937776 fix-hevc-ps-dos hevc: bound parameter-set parser loops on malformed input (DoS fix) Several loops in the HEVC SPS/PPS parsers iterate over a count read from the bitstream (ue(v)/u(n)) without checking the reader's accumulated error. On a truncated or malformed N... Pull #516 03 Jul 2026 12:37PM UTC tobbee github
83.49
28531845388 fix-hevc-ps-dos hevc: bound parameter-set parser loops on malformed input (DoS fix) Several loops in the HEVC SPS/PPS parsers iterate over a count read from the bitstream (ue(v)/u(n)) without checking the reader's accumulated error. On a truncated or malformed N... Pull #516 03 Jul 2026 11:59AM UTC zshenker github
83.49
See All Builds (305)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc