{"id":"CVE-2026-118447","kind":"vulnerability","aliases":["CVE-2026-118447"],"related":[],"title":"pybddisasm: uninitialized memory after failed decode may leak process memory","description":"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.","summary":"The pybddisasm Python bindings can return an instruction object with uninitialized contents when decoding fails. An application that reads and exposes that object after a failed decode can leak residual process memory.","severity":"medium","cvss":4.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","pybddisasm","python"],"not_affected_if":["decode-result-not-exposed","no-pybddisasm-usage"],"how_to_check":"- Check whether `pybddisasm` is installed in any environment, for example with `pip show pybddisasm`.\n- Look for calls to `nd_decode`, `nd_decode_ex`, `nd_decode_ex2` or `nd_decode_with_context` whose returned object is logged, returned to users or otherwise exposed after a failed decode.","fix":null,"status":"open","published_at":"2026-11-03T09:17:11+00:00","first_seen_at":"2026-11-03T09:19:50+00:00","triaged_at":"2026-11-03T09:20:30+00:00","updated_at":"2026-11-03T09:20:30+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-03T09:20:30Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"unknown","title":"pybddisasm: uninitialized memory after failed decode may leak process memory","impact":"low","summary":"The pybddisasm Python bindings can return an instruction object with uninitialized contents when decoding fails. An application that reads and exposes that object after a failed decode can leak residual process memory.","audience":"developers","category":"package","nicknames":[],"who_cares":["python","pybddisasm"],"confidence":0.6,"fix_status":"none","needs_auth":"unknown","worst_case":"Residual process memory may be disclosed to whoever sees the decode result.","analyst_note":"Sources state no fixed version and the package is unmaintained; confirm whether any replacement or workaround is published at the NVD entry.","how_to_check":"- Check whether `pybddisasm` is installed in any environment, for example with `pip show pybddisasm`.\n- Look for calls to `nd_decode`, `nd_decode_ex`, `nd_decode_ex2` or `nd_decode_with_context` whose returned object is logged, returned to users or otherwise exposed after a failed decode.","plain_action":"","needs_analyst":true,"not_affected_if":["no-pybddisasm-usage","decode-result-not-exposed"],"who_is_affected":"Only applications that import pybddisasm and expose the INSTRUX object returned after a failed decode are exposed. The sources say exploitation requires the application to access and expose those contents, so a program that only decodes valid input or never shows the result is not exposed. The package is no longer maintained, so the sources state no fixed version.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000714,"input_tokens":4218,"output_tokens":585,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-118447':13A,16A '-2026':12A,15A 'access':108C,124C 'applic':36B,122C 'bind':23B,62C 'caus':104C 'content':31B,92C,130C 'context':84C 'cve':11A,14A 'decod':6A,33B,46B,69C,73C,75C,78C,82C,100C,133C 'disclos':64C 'ex':76C 'ex2':79C 'exploit':119C 'expos':40B,115C,126C 'fail':5A,34B,45B,70C 'failur':103C,134C 'function':85C 'includ':102C 'initi':96C 'instruct':27B,68C 'instrux':89C 'invalid':106C 'leak':8A,48B 'longer':140C 'maintain':141C 'may':7A,63C,86C,114C 'member':109C 'memori':3A,10A,51B,56C,66C,118C 'nd':72C,74C,77C,81C 'object':28B,42B,90C,113C,129C 'oper':101C 'packag':17B,137C 'paramet':107C 'process':9A,50B,65C,117C 'pybddisasm':1A,18B,21B,60C,136C 'python':19B,22B,61C 'read':38B 'requir':120C 'residu':49B,116C 'return':25B,87C,112C,128C 'uniniti':2A,30B,55C 'unsuccess':99C 'use':53C 'vulner':57C 'whose':91C","nicknames":[],"mitigations":[],"who_affected":"Only applications that import pybddisasm and expose the INSTRUX object returned after a failed decode are exposed. The sources say exploitation requires the application to access and expose those contents, so a program that only decodes valid input or never shows the result is not exposed. The package is no longer maintained, so the sources state no fixed version.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","pybddisasm","python"],"first_public_at":"2026-11-03T09:17:11+00:00","kev":null,"cvss_vector":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"cve-requests@bitdefender.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118447","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118447","severity":null,"published_at":"2026-11-03T09:17:11+00:00","modified_at":"2026-11-03T09:17:11+00:00","first_seen_at":"2026-11-03T09:19:50+00:00","fetched_at":"2026-11-03T09:19:50+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}