Skip to main content

pybddisasm CVE-2026-118445

| EUVDEUVD-2026-115703 MEDIUM
Use After Free (CWE-416)
2026-11-03 Bitdefender GHSA-xm87-hrrj-pq46
6.9
CVSS 4.0 · Vendor: Bitdefender
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local authenticated execution in app
  2. Delivery
    Decode instruction into INSTRUX object
  3. Exploit
    Retain reference to structure-valued member
  4. Execution
    Free parent INSTRUX object
  5. Persist
    Access member referencing freed memory
  6. Impact
    Crash process or disclose reused memory

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an application built on the pybddisasm bindings to (1) obtain a structure-valued member of an INSTRUX object as a Python object, (2) retain that member reference while the parent INSTRUX allocation is freed (the member does not keep the parent alive), and (3) subsequently access the stale member. There is no remote or unauthenticated path: the CVSS vector is AV:L with PR:L, so a local authenticated context running the vulnerable code is needed. Realistic impact is limited by this dependence on a specific, somewhat unusual application coding pattern, and by the product's rare, unmaintained footprint; memory disclosure (versus a mere crash) further depends on whether the freed allocation has been reused.

Impact

This is a moderate-severity, low-urgency issue rather than a top priority. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N) describes a locally-triggered, authenticated flaw whose primary impact is availability (VA:H, process crash) with only limited confidentiality exposure (VC:L, possible disclosure of reused freed memory) and no integrity impact (VI:N) - consistent with a use-after-free (CWE-416) in a Python binding. No EPSS score was supplied, so exploitation probability cannot be quantified. The vulnerability is NOT in CISA KEV and no public exploit was identified; exploitation status is 'no public exploit identified at time of analysis.' Critically, the flaw is not triggered by an external attacker against a service but by an application's own code pattern (retaining and later dereferencing a member after its parent INSTRUX object is freed), which sharply limits real-world attack surface. The vuln.today decision label 'this_month' aligns with a genuine-but-not-emergency posture. A complicating factor: the pybddisasm package is no longer maintained, so no vendor patch is expected - the only realistic remediation is a code/dependency change by consumers.

Exploit ScenarioDerived

An application using pybddisasm decodes an instruction into an INSTRUX object, keeps a Python reference to one of its structure-valued members, and allows the parent INSTRUX object to be garbage-collected or otherwise freed. When the application later accesses the retained member, it reads memory the parent no longer owns, crashing the Python process or, if the freed allocation has been reused, exposing residual process memory. No public exploit code was identified; the only supplied reference is the PyPI project page.

Monitor Track and reassess. Why: Vendor states no customer action required.
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

Use-after-free in the unmaintained pybddisasm Python bindings lets a local, low-privileged process crash the Python interpreter or potentially read freed process memory when an application retains a structure-valued INSTRUX member reference after the parent object is freed. Exploitation requires a specific application coding pattern - obtaining a member object, letting the parent INSTRUX allocation be released, then accessing the stale member - and there is no remote or unauthenticated path. No public exploit has been identified at time of analysis, the package is no longer maintained, and the practical impact is limited by the narrow trigger and the library's small footprint.

RemediationAI

No vendor-released patch or fixed version has been identified at time of analysis, and because pybddisasm is no longer maintained, users should plan to migrate to a maintained disassembler binding or to the upstream bddisasm C library rather than wait for an update (package page: https://pypi.org/project/pybddisasm/). Where migration is not immediately possible, the actionable mitigation is to eliminate the stale-reference pattern in application code: copy structure-valued member data into independent Python objects (plain tuples, dicts or copied ctypes structures) while the parent INSTRUX is still alive, or hold an explicit strong reference to the parent INSTRUX for as long as any of its members are reachable. Copying adds per-access allocation overhead on hot decoding paths, while pinning the parent increases memory retention and can keep large allocations alive longer than intended; both must be applied consistently in every code path that touches member objects, since a single missed site reopens the use-after-free. Restricting use of the library to trusted, locally supplied binaries reduces exposure but does not remove the crash risk.

Affected VersionsENISA

pybddisasm 0 ≤0.3.0

Affected Packages

euvd pybddisasm no fix

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

pybddisasm wraps Bitdefender's bddisasm x86/x86-64 instruction decoder for Python. Several INSTRUX fields are structures rather than scalars, and the bindings expose them as Python objects that hold pointers into memory owned by the parent INSTRUX object rather than owning or referencing that memory. Because the member object does not keep the parent allocation alive, a Python-level reference to a member can outlive the INSTRUX it points into, producing a classic CWE-416 use-after-free: reads through the stale member either hit freed heap (possible memory disclosure, if the chunk has been reused) or unmapped/invalid data (interpreter crash). The trigger is application-driven and not described as reachable through any parsing of untrusted input alone; the supplied sources state only that an application must retain and later access a member reference after the parent is freed. Severity is bounded accordingly: the assessed vector is CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:H - local access, low privileges, no user interaction, confidentiality impact limited to possible disclosure, and high availability impact from a crash.

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

Vendor (Bitdefender) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

Local, in-process trigger (AV:L) within an authenticated application context (PR:L); crash dominates (A:H) with limited freed-memory disclosure (C:L) and no integrity impact.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Bitdefender).

CVSS VectorVendor: Bitdefender

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Rare
unmaintained niche Python binding for a disassembler, tiny footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
Vendor states no customer action required
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy