CVE-2026-71980 in bcg729info

Summary

by MITRE • 08/17/2026

Belledonne Communications bcg729 through 1.1.2 contains an out-of-bounds read vulnerability in the decodeSIDframe() function in src/cng.c that allows unauthenticated network-adjacent attackers to trigger a heap read beyond buffer boundaries by sending a zero-length comfort-noise RTP payload. A zero-length payload causes an integer underflow in the uint8_t filter order calculation, which wraps to 255 and is clamped to 10, causing the function to unconditionally read 11 bytes from a zero-byte buffer, resulting in media process termination or silent consumption of adjacent heap memory as reflection coefficients.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 08/17/2026

The vulnerability identified in Belledonne Communications bcg729 versions through 1.1.2 represents a critical security flaw within the Comfort Noise Generation (CNG) module, specifically located in the decodeSIDframe function found in src/cng.c. This component is responsible for processing silence insertion descriptor frames during real-time transport protocol sessions involving G.729 audio streams. The core technical deficiency stems from an improper handling of input data length checks prior to arithmetic operations and memory access routines. When a network-adjacent attacker sends a zero-length comfort-noise RTP payload, the application fails to validate that the buffer contains sufficient data before proceeding with decoding logic. This lack of boundary validation allows for an integer underflow condition during the calculation of the uint8_t filter order variable. Because the input length is zero, subtracting from this value causes it to wrap around to its maximum unsigned 8-bit integer value, which is 255.

Following the integer underflow, the code applies a clamping mechanism that restricts the calculated filter order to a maximum of ten. Consequently, the decodeSIDframe function proceeds to execute memory read operations based on this derived length. Specifically, the routine attempts to unconditionally read eleven bytes from the input buffer. Since the actual payload provided by the attacker is zero bytes in size, these reads occur outside the allocated heap boundaries. This out-of-bounds read constitutes a classic CWE-125 vulnerability, where software accesses memory beyond the intended boundary of an array or buffer. The immediate operational impact of this flaw includes the termination of the media processing thread due to segmentation faults or access violations triggered by reading unmapped or protected memory pages. In scenarios where the accessed heap region is mapped and readable but not executable, the application may continue running while silently consuming adjacent heap memory contents as reflection coefficients used for audio synthesis.

The exploitation potential of this vulnerability extends beyond simple denial-of-service conditions. By carefully crafting subsequent payloads to control the state of the heap allocator, an attacker could potentially influence what data is read into the filter coefficient variables. While primarily characterized as a read-based flaw rather than a write-based memory corruption issue, the leakage of adjacent heap contents can serve as an information disclosure vector. This aligns with CWE-200, which covers exposure of sensitive information to unauthorized actors through unintended channels such as side-channel leaks or buffer over-reads. The ability to extract internal state data from the process memory space could aid further exploitation attempts against more complex vulnerabilities within the same application stack.

From a threat intelligence perspective, this vulnerability maps directly to MITRE ATT&CK technique T1078, specifically related to valid accounts and system configuration manipulation if used in conjunction with other exploits, but primarily it falls under reconnaissance or initial access phases where network-adjacent attackers probe for weaknesses. The attack vector is classified as Network (AV:N) because the vulnerability can be triggered remotely by sending malformed RTP packets over a network connection without requiring prior authentication on the target system. This makes bcg729 particularly risky in VoIP environments, SIP gateways, and conferencing systems that rely heavily on G.729 codec support for bandwidth efficiency. The lack of input validation at this stage indicates a fundamental gap in secure coding practices regarding packet parsing logic within real-time media processing libraries.

Mitigation strategies must focus on immediate patching to version 1.1.3 or later, where the developers have addressed the integer underflow and added proper bounds checking for RTP payload lengths before invoking decodeSIDframe. For organizations unable to upgrade immediately due to dependency constraints, network-level mitigation is recommended. This includes implementing strict ingress filtering rules that inspect RTP packet headers and drop any comfort-noise frames with zero-length payloads or malformed size indicators. Additionally, deploying intrusion detection systems configured to recognize patterns of abnormal G.729 traffic can help identify attempted exploitation in real-time environments. It is also advisable to enable core dump analysis capabilities on affected servers to facilitate forensic investigation if an attack is suspected, allowing security teams to determine the extent of any potential information leakage resulting from successful heap reads.

Responsible

VulnCheck

Reservation

08/08/2026

Disclosure

08/17/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to know what is going to be exploited?

We predict KEV entries!