Product:   GPAC (MP4Box)
Affected:  2.5-DEV-rev1593-gfe88c3545-master
           Commit fe88c3545aadd597b250ccf23271d5d3de50ccc8
Fixed:     e02d1fd24cdc26acb1b236ab38b3832cffcae21b
CVE:       CVE-2025-60480
CWE:       CWE-122 (Heap-based Buffer Overflow)
CVSS 3.1:  6.5 MEDIUM (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H; BDU assessment)
Reporter:  Alexander A. Shvedov (@sigdevel)

Description:
  MP4Box performs an out-of-bounds heap read when parsing a crafted AC-4
  audio stream. gf_odf_ac4_cfg_alternative_info() in odf/descriptors.c
  accesses AC-4 alt_group_id data without sufficient bounds checking.

  The malformed stream is parsed by gf_ac4_raw_frame() and later reaches
  AC-4 descriptor generation through ac4dmx_check_pid(). AddressSanitizer
  reports a read of size 1 at odf/descriptors.c:1899, immediately after a
  784-byte heap allocation created during raw AC-4 frame parsing.

  The issue was reproduced in GPAC version
  2.5-DEV-rev1593-gfe88c3545-master at commit
  fe88c3545aadd597b250ccf23271d5d3de50ccc8. GPAC closed the report with
  commit e02d1fd24cdc26acb1b236ab38b3832cffcae21b, which fixes several
  AC-4 fuzzing issues including this report.

Impact:
  A crafted AC-4 file processed by MP4Box can cause an application crash
  and denial of service. The supplied AddressSanitizer trace demonstrates
  an out-of-bounds read; arbitrary code execution was not demonstrated.

Reproduction:
  Build GPAC with AddressSanitizer, then run:

    ./MP4Box -info 44_gf_odf_ac4_cfg_alternative_info_odf_descriptors_c_1899

  The reporter used the following debug build options:

    --static-build --static-bin --static-modules --enable-debug 
--extra-cflags="-g -O0"

ASan log excerpt:
  ==1847116==ERROR: AddressSanitizer: heap-buffer-overflow on address 
0x518000000f90
  READ of size 1 at 0x518000000f90 thread T0
      #0 0x7f556dea1063 in gf_odf_ac4_cfg_alternative_info 
odf/descriptors.c:1899
      #1 0x7f556dea43fa in gf_odf_ac4_cfg_presentation_v1_dsi 
odf/descriptors.c:2103
      #2 0x7f556dea5b2c in gf_odf_ac4_cfg_dsi_v1 odf/descriptors.c:2233
      #3 0x7f556dea6ae1 in gf_odf_ac4_cfg_write_bs odf/descriptors.c:2281
      #4 0x7f556dea6ae1 in gf_odf_ac4_cfg_write odf/descriptors.c:2288
      #5 0x7f556e8d1cb7 in ac4dmx_check_pid filters/reframe_ac4.c:238
      #6 0x7f556e8d2b09 in ac4dmx_process filters/reframe_ac4.c:403
      #7 0x7f556e5083c1 in gf_filter_process_task filter_core/filter.c:3187

  0x518000000f90 is located 0 bytes after 784-byte region
  [0x518000000c80,0x518000000f90)
  allocated by thread T0 here:
      #0 0x7f556f4f4c77 in malloc asan_malloc_linux.cpp:69
      #1 0x7f556df93069 in gf_ac4_raw_frame media_tools/av_parsers.c:15916
      #2 0x7f556df93069 in gf_ac4_parser_bs media_tools/av_parsers.c:16113

  SUMMARY: AddressSanitizer: heap-buffer-overflow
    odf/descriptors.c:1899 in gf_odf_ac4_cfg_alternative_info

Fix:
  Update to a GPAC revision containing commit:

    e02d1fd24cdc26acb1b236ab38b3832cffcae21b

PoC:
  
https://github.com/sigdevel/pocs/blob/main/res/gpac/MP4Box/44/44_gf_odf_ac4_cfg_alternative_info_odf_descriptors_c_1899

References:
  https://github.com/gpac/gpac/issues/3295
  https://github.com/gpac/gpac/commit/e02d1fd24cdc26acb1b236ab38b3832cffcae21b
  https://www.cve.org/CVERecord?id=CVE-2025-60480
  
https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2025/60xxx/CVE-2025-60480.json
  https://infosec.exchange/@sigdevel/117456490628466269
  https://bdu.fstec.ru/vul/2025-08615


——
Best regards, Alexander A. Shvedov
@sigdevel

Reply via email to