CVE-2026-77396 in pjprojectinfo

Summary

by MITRE • 09/18/2026

PJSIP is a free and open source multimedia communication library written in C. In 2.17 and earlier, the PJSIP AVI parser in pjmedia/src/pjmedia/avi_player.c uses an input-file video chunk length as the number of bytes copied into a frame buffer whose capacity is derived from the declared media dimensions. A crafted AVI file can therefore cause an attacker-controlled out-of-bounds write past the heap allocation when an application plays the file or pulls its frames. The existing size assertion does not protect production release builds, where assertions are disabled. Typical local playback can crash the process, while applications that accept untrusted AVI sources expose a stronger memory-corruption condition. No fixed version is available as of this review.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 09/18/2026

PJSIP serves as a widely utilized free and open-source multimedia communication library written in C, providing essential functionality for voice over IP and video conferencing applications across various platforms. Within the specific context of media processing, the AVI parser located in pjmedia/src/pjmedia/avi_player.c handles the decoding and playback of audio-video interleaved files. This component is critical for any application relying on PJSIP to render or process multimedia streams, making it a high-value target for attackers seeking to compromise systems that accept external media inputs. The vulnerability stems from a fundamental flaw in how the parser calculates buffer sizes relative to actual data lengths during frame extraction operations.

The core technical deficiency involves an incorrect assumption regarding memory allocation and bounds checking within the AVI parsing logic. Specifically, when processing video chunks, the library utilizes the input-file video chunk length as the definitive number of bytes to copy into a pre-allocated frame buffer. However, the capacity of this frame buffer is derived strictly from the declared media dimensions found in the file header rather than being dynamically adjusted or validated against the actual incoming data size. This discrepancy creates a scenario where the source data length can exceed the destination buffer's allocated space if an attacker crafts an AVI file with mismatched chunk lengths and dimension declarations. Consequently, this leads to an out-of-bounds write operation that extends past the boundaries of the heap allocation.

The operational impact of this vulnerability is severe due to its nature as a memory corruption issue. In standard development environments where assertions are enabled, the code might detect the size mismatch and halt execution via assertion failure. However, in production release builds, these safety checks are typically disabled for performance reasons. This means that when an application plays or pulls frames from a maliciously crafted AVI file, it will proceed with the unchecked memory copy operation. For local playback applications, this usually results in immediate process crashes and denial of service conditions. More critically, for network-facing services or applications that accept untrusted AVI sources over a network connection, this flaw exposes a potent remote code execution vector. The ability to write arbitrary data beyond allocated heap boundaries allows attackers to overwrite adjacent memory structures, potentially hijacking control flow or executing malicious payloads with the privileges of the vulnerable process.

This vulnerability aligns closely with Common Weakness Enumeration CWE-120, which describes buffer copy without checking size limits, and specifically manifests as a classic stack-based or heap-based buffer overflow depending on where the frame buffer is allocated in memory. From an adversary perspective, this flaw facilitates exploitation techniques categorized under MITRE ATT&CK technique T1203, which involves exploiting vulnerabilities for execution, particularly when combined with other primitives to achieve arbitrary code execution. The lack of proper input validation and boundary checks represents a fundamental failure in secure coding practices that is prevalent in many C-based multimedia libraries if not rigorously audited.

As no fixed version was available at the time of this review, mitigation strategies must rely on defensive programming techniques applied by application developers integrating PJSIP. Organizations should implement strict input sanitization for all media files before they are passed to the PJSIP parser, ensuring that declared dimensions match actual chunk lengths or rejecting files with discrepancies entirely. Additionally, enabling AddressSanitizer during testing phases can help identify such memory errors early in the development lifecycle. Until an official patch is released by the maintainers, deploying network-level filtering solutions that inspect and block malformed AVI headers before they reach the application layer provides a necessary compensating control to prevent exploitation of this heap-based buffer overflow vulnerability.

Responsible

GitHub M

Reservation

08/20/2026

Disclosure

09/18/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!