{"id":"CVE-2026-126839","kind":"vulnerability","aliases":["CVE-2026-126839"],"related":[],"title":"BSON deserializer: type allow-list bypass lets unlisted classes be built from input","description":"A deserialization type-restriction control in the BSON serialization component can be bypassed because the check used to recognize a class of compiler-generated types relies on an overly permissive heuristic rather than a precise identification. An unauthorized party able to supply BSON content that an application later deserializes into a loosely typed member can cause types outside the intended allow-list to be constructed and populated with unauthorized party-supplied values inside the consuming application. This can lead to unexpected object state and errors in downstream application logic. No elevated privileges beyond the ability to place unauthorized party-influenced content in the deserialization path are required.","summary":"The BSON serialization component's type-restriction check identifies compiler-generated types with an overly loose heuristic, so it can be bypassed. An attacker who can supply BSON that the application deserializes into a loosely typed member can get types outside the allow-list constructed and populated with attacker-chosen values, causing unexpected state and downstream errors.","severity":"medium","cvss":4.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["bson","deserialization","package"],"not_affected_if":["no-loosely-typed-deserialization","trusted-input-only"],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-11-13T00:20:13+00:00","first_seen_at":"2026-11-13T00:41:06+00:00","triaged_at":"2026-11-13T00:41:24+00:00","updated_at":"2026-11-13T00:41:24+00:00","category":"package","confidence":0.35,"triage":{"at":"2026-11-13T00:41:24Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"BSON deserializer: type allow-list bypass lets unlisted classes be built from input","impact":"medium","summary":"The BSON serialization component's type-restriction check identifies compiler-generated types with an overly loose heuristic, so it can be bypassed. An attacker who can supply BSON that the application deserializes into a loosely typed member can get types outside the allow-list constructed and populated with attacker-chosen values, causing unexpected state and downstream errors.","audience":"developers","category":"package","nicknames":[],"who_cares":["bson","deserialization"],"confidence":0.35,"fix_status":"unknown","needs_auth":"no","worst_case":"Attacker-chosen types are constructed and populated inside the application","analyst_note":"Identify the affected BSON library and its fixed versions from the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-126839; product data is missing.","how_to_check":"unknown","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["trusted-input-only","no-loosely-typed-deserialization"],"who_is_affected":"Applications that deserialize untrusted BSON into loosely typed members with a type restriction in place are the ones at risk. Systems that only handle BSON from trusted sources, or that do not deserialize into loosely typed members, are less exposed. The sources do not name the affected package or versions.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000727,"input_tokens":4642,"output_tokens":526,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-126839':17A,20A '-2026':16A,19A 'abil':183C 'abl':126C 'allow':5A,69B,148C 'allow-list':4A,68B,147C 'applic':56B,133C,164C,176C 'attack':49B,76B 'attacker-chosen':75B 'beyond':181C 'bson':1A,21B,25B,53B,93C,129C 'built':12A 'bypass':7A,47B,98C 'caus':79B,142C 'check':32B,101C 'chosen':77B 'class':10A,106C 'compil':35B,109C 'compiler-gener':34B,108C 'compon':27B,95C 'construct':71B,152C 'consum':163C 'content':130C,190C 'control':90C 'cve':15A,18A 'deseri':2A,22B,57B,86C,135C,193C 'downstream':83B,175C 'elev':179C 'error':84B,173C 'generat':36B,110C 'get':64B 'heurist':42B,117C 'identif':122C 'identifi':33B 'influenc':189C 'input':14A 'insid':161C 'intend':146C 'later':134C 'lead':167C 'let':8A 'list':6A,70B,149C 'logic':177C 'loos':41B,60B,138C 'member':62B,140C 'object':170C 'outsid':66B,144C 'over':40B,115C 'packag':23B 'parti':125C,158C,188C 'party-influenc':187C 'party-suppli':157C 'path':194C 'permiss':116C 'place':185C 'popul':73B,154C 'precis':121C 'privileg':180C 'rather':118C 'recogn':104C 'reli':112C 'requir':196C 'restrict':31B,89C 'serial':26B,94C 'state':81B,171C 'suppli':52B,128C,159C 'type':3A,30B,37B,61B,65B,88C,111C,139C,143C 'type-restrict':29B,87C 'unauthor':124C,156C,186C 'unexpect':80B,169C 'unlist':9A 'use':102C 'valu':78B,160C","nicknames":[],"mitigations":[],"who_affected":"Applications that deserialize untrusted BSON into loosely typed members with a type restriction in place are the ones at risk. Systems that only handle BSON from trusted sources, or that do not deserialize into loosely typed members, are less exposed. The sources do not name the affected package or versions.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["bson","deserialization","medium","package"],"campaign_type":null,"search_a":"'-126839':17A,20A '-2026':16A,19A 'allow':5A 'allow-list':4A 'bson':1A 'built':12A 'bypass':7A 'class':10A 'cve':15A,18A 'deseri':2A 'input':14A 'let':8A 'list':6A 'type':3A 'unlist':9A","search_b":"'allow':69B 'allow-list':68B 'applic':56B 'attack':49B,76B 'attacker-chosen':75B 'bson':21B,25B,53B 'bypass':47B 'caus':79B 'check':32B 'chosen':77B 'compil':35B 'compiler-gener':34B 'compon':27B 'construct':71B 'deseri':22B,57B 'downstream':83B 'error':84B 'generat':36B 'get':64B 'heurist':42B 'identifi':33B 'list':70B 'loos':41B,60B 'member':62B 'outsid':66B 'over':40B 'packag':23B 'popul':73B 'restrict':31B 'serial':26B 'state':81B 'suppli':52B 'type':30B,37B,61B,65B 'type-restrict':29B 'unexpect':80B 'valu':78B","search_c":"'abil':183C 'abl':126C 'allow':148C 'allow-list':147C 'applic':133C,164C,176C 'beyond':181C 'bson':93C,129C 'bypass':98C 'caus':142C 'check':101C 'class':106C 'compil':109C 'compiler-gener':108C 'compon':95C 'construct':152C 'consum':163C 'content':130C,190C 'control':90C 'deseri':86C,135C,193C 'downstream':175C 'elev':179C 'error':173C 'generat':110C 'heurist':117C 'identif':122C 'influenc':189C 'insid':161C 'intend':146C 'later':134C 'lead':167C 'list':149C 'logic':177C 'loos':138C 'member':140C 'object':170C 'outsid':144C 'over':115C 'parti':125C,158C,188C 'party-influenc':187C 'party-suppli':157C 'path':194C 'permiss':116C 'place':185C 'popul':154C 'precis':121C 'privileg':180C 'rather':118C 'recogn':104C 'reli':112C 'requir':196C 'restrict':89C 'serial':94C 'state':171C 'suppli':128C,159C 'type':88C,111C,139C,143C 'type-restrict':87C 'unauthor':124C,156C,186C 'unexpect':169C 'use':102C 'valu':160C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-13T00:20:13+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L/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":"cna@mongodb.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-126839","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126839","severity":null,"published_at":"2026-11-13T00:20:13+00:00","modified_at":"2026-11-13T00:20:13+00:00","first_seen_at":"2026-11-13T00:41:06+00:00","fetched_at":"2026-11-13T00:41:06+00:00","note":null}],"documents":[],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}