Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local low-privileged access to app
-
DeliverySupply input causing decode failure
-
ExploitTrigger return of uninitialized INSTRUX
-
ExecutionApp reads uninitialized object members
-
ImpactResidual process memory disclosed
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Variable initialization checks
|
| Exploitation Conditions | Exploitation requires a consuming application built on pybddisasm (≤0.3.0) to call one of nd_decode, nd_decode_ex, nd_decode_ex2, or nd_decode_with_context, encounter an unsuccessful decode (including failures from invalid parameters), and then access and expose the members of the returned INSTRUX object whose contents were never initialized. The decisive limiting factor is that the flaw is inert unless the application reads and surfaces that object after a failed decode - a well-written caller that checks the decode status first is unaffected. Further limits: the CVSS vector is local (AV:L) and requires some privilege (PR:L), impact is confined to confidentiality (information disclosure of residual process memory) with no integrity or availability impact, and the package is unmaintained with no fixed version available. |
| Impact | This is a genuinely low-priority issue despite being a real memory-disclosure bug. All signals point the same direction: the input CVSS 4.0 vector is AV:L (local), AC:L, AT:N, PR:L (requires some privilege/authenticated context) and only VC:L confidentiality impact with no integrity or availability impact, yielding a modest base score of 4.8. The vuln.today decision label is 'monitor', not act_now or emergency. There is no CISA KEV listing and no EPSS score was supplied, so there is no evidence of active or probable exploitation. No exploit or PoC reference appears in the input, so no public exploit is identified. Crucially, exploitation is not self-contained: the flaw only matters if a downstream application reads and exposes the members of an INSTRUX object returned after a FAILED decode, so the consuming application must behave in a specific insecure way. Combined with the fact that pybddisasm is an unmaintained, niche library, this reads as a low-real-risk medium-CVSS issue rather than an urgent threat. No signals conflict here. |
| Exploit ScenarioDerived | A local, low-privileged user interacts with an application that uses pybddisasm and feeds it input that causes nd_decode/nd_decode_ex/nd_decode_ex2/nd_decode_with_context to fail (e.g. invalid parameters or an undecodable instruction). The application then reads fields of the returned, uninitialized INSTRUX object and surfaces them, leaking residual process memory to the user. No public exploit code or PoC is identified in the available data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
pybddisasm 0.3.0 and earlier can disclose residual process memory to any consuming application that reads an INSTRUX object returned by a failed instruction decode. The four decode entry points leave the returned object uninitialized when decoding fails, including failures caused by invalid parameters, so an application that surfaces those members after a failure may expose leftover heap or stack contents; a caller that checks the decode status first is unaffected. The package is unmaintained with no fixed release, the vector is local and privilege-gated with confidentiality-only impact, and no public exploit has been identified at time of analysis.
RemediationAI
No vendor-released patch or fixed version has been identified at time of analysis: pybddisasm is unmaintained and no corrected release exists for the ≤0.3.0 range. The effective control sits in the consuming application - check the return status of every nd_decode, nd_decode_ex, nd_decode_ex2 and nd_decode_with_context call and never read, serialize, log or otherwise expose members of the returned INSTRUX object after a decoding failure, since a caller that validates status before use is not exposed to the disclosure. That requires a code change in each application embedding the binding and does not repair the library itself. Because no upstream fix is expected, plan migration to a maintained decoder or binding instead of relying on pybddisasm long term. Advisory and package references: https://pypi.org/project/pybddisasm/ and https://nvd.nist.gov/vuln/detail/CVE-2026-118447.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
bddisasm is Bitdefender's x86/x86-64 instruction decoder, and pybddisasm is its Python binding, exposing the INSTRUX structure that holds decoded instruction fields. The root cause is CWE-457 (Use of Uninitialized Variable): nd_decode, nd_decode_ex, nd_decode_ex2 and nd_decode_with_context return an INSTRUX object that is never populated when the underlying decode fails, so its members retain whatever data previously occupied that memory. Reading those members from Python can therefore return residual process memory rather than decoded instruction data. Reachability depends entirely on the caller: the flaw is inert unless an application invokes one of these functions, ignores the decode status, and then reads or exposes the object. Both the CVSS 4.0 vector supplied with the record (base 4.8) and the independent CVSS 3.1 assessment score it local (AV:L) with attacker privileges required (PR:L) and confidentiality-only impact (C:L), with no integrity or availability effect, which matches the narrow trigger described in the sources.
Know when Pybddisasm gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Local, consumer-application-dependent trigger with some privilege required (AV:L, PR:L, AC:L); impact limited to partial memory disclosure, so C:L with I:N/A:N.
Primary rating from Vendor (Bitdefender).
CVSS VectorVendor: Bitdefender
DescriptionCVE.org
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 whose contents have not been initialized after an unsuccessful decoding operation, including failures caused by invalid parameters. Accessing members of the returned object may expose residual process memory. Exploitation requires an application to access and expose the returned object contents after a decoding failure. The pybddisasm package is no longer maintained.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Pybddisasm
View allUninitialized-memory handling in the pybddisasm Python bindings can cause nd_to_text to turn an uninitialized output buf
A use-after-free in the pybddisasm Python bindings lets a local, low-privileged consumer of the library read freed heap
Use-after-free in the unmaintained pybddisasm Python bindings lets a local, low-privileged process crash the Python inte
Out-of-bounds reads in the pybddisasm Python bindings for the Bitdefender disassembler can expose up to roughly 15 bytes
EUVD-2026-115701
GHSA-qm9j-xr9g-5hqr
NVD
CVE.org
EPSS
Exploit-DB