CVE-2026-118444
MediumCVSS 4.8Summary
Out-of-bounds read vulnerabilities in the pybddisasm Python bindings may disclose adjacent process memory during instruction decoding. The nd_decode function may read up to 15 bytes without checking the actual buffer length, and nd_decode_ex, nd_decode_ex2, and nd_decode_with_context pass the caller-supplied size without validating it against the actual buffer length, potentially exposing data via nd_get_instrux_bytes.
Risk Assessment
Adjacent process memory may be disclosed, potentially leaking sensitive data. The risk occurs when an application invokes these APIs with a short buffer or oversized length and exposes the resulting bytes to an attacker.
Recommendation
Replace pybddisasm with a maintained alternative or restrict its use, as the package is no longer maintained. Applications should validate buffer lengths and avoid exposing data returned by nd_get_instrux_bytes after an invalid call.
Other vulnerabilities in pybddisasm
See all- CVE-2026-118448Medium
A use of uninitialized memory vulnerability in the pybddisasm Python bindings affects nd_to_text. If text conversion fails, including due to invalid parameters, the output buffer may remain uninitialized while still being converted into a Python return value, potentially disclosing residual process memory or crashing the Python process.
- CVE-2026-118447Medium
A use of uninitialized memory vulnerability in the pybddisasm Python bindings may disclose process memory when instruction decoding fails. The nd_decode, nd_decode_ex, nd_decode_ex2, and nd_decode_with_context functions may return an INSTRUX object with uninitialized contents after an unsuccessful decoding operation, and accessing its members may expose residual process memory.
- CVE-2026-118446Medium
A use-after-free vulnerability in the pybddisasm Python bindings affects array-valued members of INSTRUX objects, including ND_OPERAND arrays. These arrays are exposed as Python lists referencing memory owned by the parent INSTRUX object, and retaining an element does not keep the parent allocation alive, so accessing it after the parent is freed accesses freed memory.
- CVE-2026-118445Medium
A use-after-free vulnerability in the pybddisasm Python bindings affects structure-valued members of INSTRUX objects. These members are exposed through Python objects referencing memory owned by the parent INSTRUX object, and a retained reference does not keep the parent allocation alive, so accessing the member after the parent is freed accesses freed memory.
Original NVD description (English source)
Out-of-bounds read vulnerabilities in the pybddisasm Python bindings may disclose adjacent process memory during instruction decoding. The nd_decode function may read up to 15 bytes without checking the actual length of the supplied Python buffer. The nd_decode_ex, nd_decode_ex2, and nd_decode_with_context functions pass the caller-supplied buffer size to the decoder without validating it against the actual length of the Python buffer. Data read beyond the buffer may be exposed through nd_get_instrux_bytes, which returns a fixed-length list of 16 bytes. Exploitation requires an application to invoke the affected APIs with a short buffer or an oversized length and to expose the resulting bytes to an attacker. The pybddisasm package is no longer maintained.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

