Coordinated Disclosure Timeline

Project

Gstreamer

Tested Version

Details

OOB-read in qtdemux_merge_sample_table (GHSL-2024-246)

An OOB-read vulnerability has been discovered in the qtdemux_merge_sample_table function within qtdemux.c.

The problem is that the size of the stts buffer isn’t properly checked before reading stts_duration, allowing the program to read 4 bytes beyond the boundaries of stts->data:

static void qtdemux_merge_sample_table (GstQTDemux * qtdemux, QtDemuxStream * stream){
...
  gst_byte_reader_skip_unchecked (&stream->stts, 4);
  stts_duration = gst_byte_reader_get_uint32_be_unchecked (&stream->stts);
...

Impact

This vulnerability reads up to 4 bytes past the allocated bounds of the stts array.

CVE

Credit

This issue was discovered and reported by GHSL team member @antonio-morales (Antonio Morales).

Contact

You can contact the GHSL team at securitylab@github.com, please include a reference to GHSL-2024-246 in any communication regarding this issue.