Fix OOB read/write and length handling in CEA-608/708 decoders #1975
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In raising this pull request, I confirm the following (please check boxes):
My familiarity with the project is as follows (check one):
description
This change addresses multiple robustness and security issues in the CEA-608 and CEA-708 caption decoders.
The issues were triggered by malformed or truncated caption streams and could lead to out-of-bounds memory access or decoder desynchronization.
These issues did not appear to be previously reported.
Issues Identified
File: src/lib_ccx/ccx_decoders_608.c
Impact:
Potential out-of-bounds write → memory corruption and crashes.
File: src/lib_ccx/ccx_decoders_708.c
Impact:
Out-of-bounds read → crashes or processing of garbage data.
File: src/lib_ccx/ccx_decoders_708.c
Impact:
Increased likelihood of OOB reads and incorrect parsing behavior.
Fixes Implemented
CEA-608 Decoder
CEA-708 Decoder
Safely skip malformed EXT1 sequences without reading past buffer bounds.