{"id":"CVE-2026-114197","kind":"vulnerability","aliases":["CVE-2026-114197"],"related":[],"title":"capa: crafted workspace file runs code during deserialization","description":"Deserialization of untrusted data in Mandiant FLARE capa releases before 10.0.0 allows arbitrary code execution when a crafted .viv or .exe.viv workspace is passed to the capa utility","summary":"capa before 10.0.0 automatically loads a cached Vivisect workspace (.viv, e.g. sample.exe.viv) found next to the sample you analyze. Vivisect workspaces are Python pickle, so a crafted one runs code as the user running capa. A crafted file named *.viv passed directly to capa can also trigger it. The attacker has to get you to analyze a sample or a directory they control. Reported by Waleed Ali; fixed Oct 15, advisory Oct 20.","severity":"high","cvss":8.7,"epss":0.00116,"exploited":false,"exploited_at":null,"products":[{"name":"capa","fixed":["10.0.0"],"affected":"< 10.0.0","ecosystem":"pip"}],"ecosystems":["pip"],"tags":["capa","deserialization","malware-analysis","package","pickle","reverse-engineering"],"not_affected_if":["capa-10.0.0-or-later","only-analyzes-own-samples"],"how_to_check":"Run 'capa --version' or 'pip show flare-capa'; anything below 10.0.0 is affected (standalone binary: same version check). Also look for stray *.viv files next to samples you analyze, and treat any you did not create as hostile.","fix":"Upgrade to capa 10.0.0 or later (pip install -U flare-capa, or the standalone release binary). From 10.0.0, capa always parses samples as PE or ELF and only loads an existing .viv when CAPA_LOAD_VIV_WORKSPACE=1 is set; enable that only for .viv files you trust. Until upgraded, run capa on untrusted samples in a clean directory or a sandbox VM, with no .viv files present.","status":"open","published_at":"2026-10-21T01:17:38+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","triaged_at":"2026-10-23T22:36:57+00:00","updated_at":"2026-10-24T13:15:54+00:00","category":"package","confidence":0.9,"triage":{"at":"2026-10-23T22:36:57Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade capa to 10.0.0 or later.","reach":"local","title":"capa: crafted workspace file runs code during deserialization","impact":"high","summary":"Mandiant FLARE capa releases before 10.0.0 deserialize untrusted data from a .viv or .exe.viv workspace file. A crafted workspace passed to capa lets an attacker run arbitrary code on the machine running it.","category":"package","who_cares":["capa","malware-analysis","reverse-engineering"],"confidence":0.6,"needs_auth":"no","worst_case":"Arbitrary code runs on the analyst's machine when a workspace is opened","analyst_note":"Confirm the affected version range and how capa is installed (pip package or binary) at the NVD entry and the FLARE capa GitHub advisory.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["capa-10.0.0-or-later"],"user_interaction":"yes","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000468,"input_tokens":2888,"output_tokens":358,"severity_before":"high"},"analyst_status":"done","analyst_note":"Confirm the affected version range and how capa is installed (pip package or binary) at the NVD entry and the FLARE capa GitHub advisory.","search":"'-114197':11A,14A '-2026':10A,13A '10.0.0':28B,109C '15':95B '20':98B 'advisori':96B 'ali':92B 'allow':110C 'also':71B 'analysi':20B 'analyz':44B,81B 'arbitrari':111C 'attack':75B 'automat':29B 'cach':32B 'capa':1A,15A,16B,26B,60B,69B,106C,125C 'code':6A,55B,112C 'control':88B 'craft':2A,52B,62B,116C 'cve':9A,12A 'data':102C 'deseri':8A,17B,99C 'direct':67B 'directori':86B 'e.g':36B 'engin':25B 'exe.viv':119C 'execut':113C 'file':4A,63B 'fix':93B 'flare':105C 'found':38B 'get':78B 'load':30B 'malwar':19B 'malware-analysi':18B 'mandiant':104C 'name':64B 'next':39B 'oct':94B,97B 'one':53B 'packag':21B 'pass':66B,122C 'pickl':22B,49B 'python':48B 'releas':107C 'report':89B 'revers':24B 'reverse-engin':23B 'run':5A,54B,59B 'sampl':42B,83B 'sample.exe.viv':37B 'trigger':72B 'untrust':101C 'user':58B 'util':126C 'viv':35B,65B,117C 'vivisect':33B,45B 'wale':91B 'workspac':3A,34B,46B,120C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T01:17:38+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/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":"mandiant-cve@google.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-114197","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114197","severity":null,"published_at":"2026-10-21T01:17:38+00:00","modified_at":"2026-10-22T17:36:46+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","fetched_at":"2026-10-23T22:29:01+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-114197:525","url":null,"severity":null,"published_at":"2026-10-23T23:49:38+00:00","modified_at":"2026-10-23T23:49:38+00:00","first_seen_at":"2026-10-23T23:49:38+00:00","fetched_at":"2026-10-23T23:49:38+00:00","note":"Read Mandiant advisory MNDT-2026-0035 and capa v10.0.0 release notes. No PoC or exploitation found, no X chatter (count 0). Release notes say affected v9.4.0 and earlier."},{"source":"epss","external_id":"CVE-2026-114197","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-114197","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:54+00:00","fetched_at":"2026-10-24T13:15:54+00:00","note":null}],"documents":[{"id":2181,"url":"https://github.com/mandiant/Vulnerability-Disclosures/blob/master/2026/MNDT-2026-0035.md","title":"MNDT-2026-0035: capa deserialization of untrusted .viv workspace","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":2182,"url":"https://github.com/mandiant/capa/releases","title":"capa v10.0.0 release notes (Security section)","kind":"release","source":"analyst","text":null,"published_at":null,"relation":"fix","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}