Skip to main content
Vulnerability Database/CVE-2026-91091

CVE-2026-91091: GPAC Buffer Overflow Vulnerability

CVE-2026-91091 is a buffer overflow flaw in GPAC that leads to memory corruption through the gf_node_list_insert_child function. This post explains its impact, affected versions, and mitigation steps.

Published:

CVE-2026-91091 Overview

CVE-2026-91091 is a memory corruption vulnerability in GPAC multimedia framework versions up to commit f1219cde. The flaw resides in the gf_node_list_insert_child function within scenegraph/base_scenegraph.c, part of the Node Insertion component. Attackers can trigger the issue remotely by supplying crafted scene graph input that manipulates node insertion logic, resulting in memory corruption ([CWE-119]). A public proof-of-concept exists, though exploitation requires user interaction to process the malicious file. The GPAC maintainers addressed the issue in release abi-16.23 via patch commit 49dee5cad329cfed310c1682703df7daa47df31a.

Critical Impact

Remote attackers can trigger memory corruption in GPAC-based multimedia processing workflows when users open a crafted scene graph file, potentially leading to availability loss.

Affected Products

  • GPAC multimedia framework versions up to commit f1219cde
  • Applications embedding the vulnerable scenegraph/base_scenegraph.c component
  • Downstream media processing pipelines depending on unpatched GPAC builds

Discovery Timeline

  • 2026-09-15 - CVE-2026-91091 published to NVD
  • 2026-09-15 - Last updated in NVD database

Technical Details for CVE-2026-91091

Vulnerability Analysis

The vulnerability affects GPAC's scene graph subsystem, which parses and manipulates node trees for BIFS (Binary Format for Scenes) and related multimedia formats. The gf_node_list_insert_child function fails to properly enforce memory boundaries when inserting nodes into a scene graph list. Processing a crafted input causes the function to read or write outside allocated buffers, corrupting adjacent memory. The condition is classified under [CWE-119] as an improper restriction of operations within the bounds of a memory buffer.

Exploitation requires the victim to open or process a malicious media file with a GPAC-based tool. The remote attack vector reflects delivery through untrusted content sources such as web downloads or email attachments. The observed impact is primarily availability loss through process crashes, though memory corruption bugs of this class occasionally support further exploitation depending on allocator state.

Root Cause

The root cause is unsafe handling of node list manipulation during scene graph construction. Related fixes in the patch commit address command node assignment and packet reference lifecycle management in adjacent GPAC modules, indicating a broader hardening pass on node memory ownership.

Attack Vector

An attacker crafts a malicious multimedia file that triggers the vulnerable insertion path when parsed by GPAC. Delivery is network-based, but user interaction is required to open the file. No authentication is needed. A public PoC archive (poc_18_nstatx.zip) is referenced in the GitHub Issue Tracker.

c
// Patch excerpt: 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);
}

The fix replaces direct field assignment with the accessor gf_sg_command_set_node, which enforces correct reference handling before registering the node. Source: GitHub Commit Details.

c
// Patch excerpt: 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);

The AV1 reframer patch adds a missing packet unreference during context teardown, closing a related lifetime issue. Source: GitHub Commit Details.

Detection Methods for CVE-2026-91091

Indicators of Compromise

  • Unexpected crashes of MP4Box, MP4Client, or other GPAC binaries when processing untrusted media files
  • Presence of the PoC archive poc_18_nstatx.zip or similarly named test inputs on user systems
  • Core dumps or ASAN reports referencing gf_node_list_insert_child in scenegraph/base_scenegraph.c

Detection Strategies

  • Inventory endpoints and build systems for GPAC installations older than release abi-16.23
  • Deploy file-type inspection on ingress channels to flag suspicious BIFS or scene graph payloads delivered through web or email
  • Monitor process telemetry for GPAC binaries spawning shells or writing to unexpected paths after opening media

Monitoring Recommendations

  • Alert on repeated abnormal terminations of GPAC processes across the fleet, which may indicate exploitation attempts
  • Correlate media file downloads with subsequent GPAC process launches to identify untrusted content processing
  • Log software inventory changes to track patch adoption of GPAC abi-16.23 across managed hosts

How to Mitigate CVE-2026-91091

Immediate Actions Required

  • Upgrade GPAC to release abi-16.23 or later on all endpoints, servers, and CI pipelines
  • Rebuild any downstream applications that statically link GPAC against the patched sources
  • Restrict processing of untrusted scene graph or BIFS media to sandboxed environments until patched

Patch Information

The fix is available in commit 49dee5cad329cfed310c1682703df7daa47df31a and included in the GitHub Release Tag abi-16.23. Additional context is available in the GitHub Issue Tracker and the VulDB CVE-2026-91091 entry.

Workarounds

  • Avoid opening scene graph or BIFS files from untrusted sources until the patched version is deployed
  • Run GPAC utilities under a restricted user account with no write access to sensitive directories
  • Disable or remove GPAC command-line tools on systems that do not require multimedia processing
bash
# Verify installed GPAC version and upgrade from source
MP4Box -version
git clone https://github.com/gpac/gpac.git
cd gpac
git checkout abi-16.23
./configure && make && sudo make install

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.