CVE-2026-90577 Overview
CVE-2026-90577 is a heap-based buffer overflow [CWE-119] in GPAC, an open-source multimedia framework. The flaw exists in the gf_node_get_field function within scenegraph/base_scenegraph.c, reachable through the MP4Box component. Affected builds include GPAC revisions up to commit f1219cde. Exploitation requires local access and low privileges, and public exploit details are available. Successful exploitation can corrupt heap memory during scene graph processing, potentially leading to process crashes or memory disclosure when a crafted media file is parsed. The GPAC project addressed the issue in release abi-16.23 via commit 49dee5cad329cfed310c1682703df7daa47df31a.
Critical Impact
A local attacker supplying a malicious media file to MP4Box can trigger heap corruption in gf_node_get_field, undermining the integrity and availability of the parsing process.
Affected Products
- GPAC multimedia framework revisions up to commit f1219cde
- MP4Box command-line utility bundled with affected GPAC builds
- Applications and pipelines linking the vulnerable scenegraph/base_scenegraph.c code path
Discovery Timeline
- 2026-09-13 - CVE-2026-90577 published to the National Vulnerability Database
- 2026-09-15 - Last updated in NVD database
Technical Details for CVE-2026-90577
Vulnerability Analysis
The defect resides in gf_node_get_field inside scenegraph/base_scenegraph.c. When MP4Box parses BIFS or scene graph structures from an untrusted media file, the function accesses field metadata on a node without adequately validating buffer boundaries. Manipulated input drives a write or read past the bounds of a heap allocation, producing a classic heap-based buffer overflow. Because the parser runs in the same process as the caller, the corruption can influence adjacent heap metadata and application state. In practice, this typically produces a crash of MP4Box, but heap layout manipulation could enable more advanced outcomes in specific builds.
Root Cause
The root cause is missing or insufficient bounds enforcement when resolving node field descriptors during scene graph decoding. Related fixes in the same commit also strengthen node reference handling in src/bifs/memory_decoder.c and packet reference cleanup in src/filters/reframe_av1.c, indicating broader hardening of memory ownership across fuzz-reachable code paths.
Attack Vector
The attack requires local access with low privileges and no user interaction. An attacker delivers a crafted media file and induces a user or automated pipeline to process it with MP4Box or another consumer of the vulnerable scene graph code. Because the exploit is public, defenders should assume opportunistic use against exposed conversion workflows.
// Security patch excerpt from src/bifs/memory_decoder.c
static void BM_SetCommandNode(GF_Command *com, GF_Node *node)
{
- com->node = node;
+ gf_sg_command_set_node(com, node);
gf_node_register(node, NULL);
}
// Source: [GitHub Commit 49dee5c](https://github.com/gpac/gpac/commit/49dee5cad329cfed310c1682703df7daa47df31a)
// Security patch excerpt from src/filters/reframe_av1.c
GF_AV1DmxCtx *ctx = gf_filter_get_udta(filter);
if (ctx->bs) gf_bs_del(ctx->bs);
if (ctx->indexes) gf_free(ctx->indexes);
+ if (ctx->src_pck) gf_filter_pck_unref(ctx->src_pck);
gf_av1_reset_state(&ctx->state, GF_TRUE);
if (ctx->state.config) gf_odf_av1_cfg_del(ctx->state.config);
// Source: [GitHub Commit 49dee5c](https://github.com/gpac/gpac/commit/49dee5cad329cfed310c1682703df7daa47df31a)
The first hunk routes command node assignment through gf_sg_command_set_node, ensuring proper reference tracking. The second hunk releases a source packet reference during AV1 reframer teardown to prevent lingering pointers into freed memory.
Detection Methods for CVE-2026-90577
Indicators of Compromise
- Unexpected crashes or SIGSEGV terminations of MP4Box when processing untrusted media files
- Heap corruption traces or ASan reports referencing gf_node_get_field in scenegraph/base_scenegraph.c
- Presence of GPAC binaries at revisions prior to release abi-16.23
Detection Strategies
- Inventory hosts, build agents, and media conversion pipelines for GPAC installations and compare versions against release tag abi-16.23.
- Monitor process telemetry for MP4Box execution against files sourced from untrusted locations such as email attachments, uploads, or shared storage.
- Run affected binaries under AddressSanitizer in test environments to reproduce the overflow and confirm patch effectiveness.
Monitoring Recommendations
- Alert on repeated abnormal exits of MP4Box correlated with specific input files.
- Capture command lines and file hashes for MP4Box invocations in build servers and transcoding services.
- Track new GPAC package deployments against approved versions to catch regressions to vulnerable builds.
How to Mitigate CVE-2026-90577
Immediate Actions Required
- Upgrade GPAC to release abi-16.23 or later on every system that runs MP4Box or links GPAC libraries.
- Restrict MP4Box execution to trusted media sources and prevent low-privilege users from feeding arbitrary files to shared conversion utilities.
- Rebuild any downstream applications that statically link vulnerable GPAC code against the patched release.
Patch Information
The fix is delivered in commit 49dee5cad329cfed310c1682703df7daa47df31a and shipped in release abi-16.23. Additional context is available in GitHub Issue #3816 and the CVESummit writeup.
Workarounds
- Disable or remove MP4Box on systems that do not require multimedia container manipulation until patched builds are deployed.
- Sandbox MP4Box invocations using isolated containers, seccomp profiles, or unprivileged accounts to limit blast radius from heap corruption.
- Reject or pre-filter media inputs from untrusted sources and require format validation before invoking scene graph parsing.
# Verify installed GPAC version and upgrade from source to the patched release
MP4Box -version
git clone https://github.com/gpac/gpac.git
cd gpac
git checkout abi-16.23
./configure
make -j"$(nproc)"
sudo make install
# Confirm the patched commit is present
git log -1 --pretty=oneline 49dee5cad329cfed310c1682703df7daa47df31a
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

