CVE-2026-118445
MediumCVSS 6.9Summary
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.
Risk Assessment
This may expose process memory or crash the Python process. The risk occurs when an application retains and subsequently accesses a member reference after the parent object has been freed.
Recommendation
Replace pybddisasm with a maintained alternative or restrict its use, as the package is no longer maintained. Applications should avoid retaining INSTRUX member references after the parent object is freed.
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-118444Medium
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.
Original NVD description (English source)
A use-after-free vulnerability in the pybddisasm Python bindings affects structure-valued members of INSTRUX objects. These members are exposed through Python objects that reference memory owned by the parent INSTRUX object. A retained reference to a member does not keep the parent allocation alive. Accessing the member after the parent INSTRUX object has been freed therefore accesses freed memory. Depending on how the member is used and whether the freed allocation has been reused, this may expose process memory or cause the Python process to crash. Exploitation requires an application to retain and subsequently access a member reference after the parent object has been freed. The pybddisasm package is no longer maintained.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

