{"id":"CVE-2026-63500","kind":"vulnerability","aliases":["CVE-2026-63500"],"related":[],"title":"Yeti: crafted DFIQ UUID lets authenticated users write files outside archive","description":"Yeti bridges the gap between CTI and DFIR practitioners by providing a Forensics Intelligence platform and pipeline. Prior to 2.5.1, core/schemas/dfiq.py accepts an unvalidated uuid from DFIQ YAML through POST /api/v2/dfiq/from_yaml, and core/web/apiv2/dfiq.py later interpolates that stored value into an archive filesystem path in POST /api/v2/dfiq/to_archive. A low-privileged authenticated user can import a DFIQ object whose UUID contains traversal sequences and trigger archive export, causing attacker-controlled content with a .yaml suffix to be written outside the intended temporary archive directory. The impact is limited by paths writable by the YETI service account, and the separate DFIQ archive-import zip-slip candidate is not part of this vulnerability. This issue is fixed in version 2.5.1.","summary":"Yeti, a forensics intelligence platform, fails to validate a UUID in imported DFIQ YAML objects, so the UUID's path traversal sequences are used when exporting to the archive. A low-privileged logged-in user can write attacker-controlled .yaml content to arbitrary locations the Yeti service account can write to.","severity":"high","cvss":7.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","python","self-hosted","yeti"],"not_affected_if":["no-dfiq-import","version-2.5.1-or-later"],"how_to_check":"- Check the installed Yeti version; affected versions are those before `2.5.1`.\n- Look for the `POST /api/v2/dfiq/from_yaml` and `POST /api/v2/dfiq/to_archive` endpoints in your deployment's API logs.","fix":"- Upgrade Yeti to `2.5.1`.","status":"open","published_at":"2026-11-03T20:18:16+00:00","first_seen_at":"2026-11-03T20:49:23+00:00","triaged_at":"2026-11-03T20:50:22+00:00","updated_at":"2026-11-03T20:50:22+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-03T20:50:22Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Yeti to `2.5.1`.","reach":"network","title":"Yeti: crafted DFIQ UUID lets authenticated users write files outside archive","impact":"medium","summary":"Yeti, a forensics intelligence platform, fails to validate a UUID in imported DFIQ YAML objects, so the UUID's path traversal sequences are used when exporting to the archive. A low-privileged logged-in user can write attacker-controlled .yaml content to arbitrary locations the Yeti service account can write to.","audience":"businesses","category":"package","nicknames":[],"who_cares":["yeti","self-hosted","python"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"attacker writes YAML files to arbitrary service-writable paths","analyst_note":"","how_to_check":"- Check the installed Yeti version; affected versions are those before `2.5.1`.\n- Look for the `POST /api/v2/dfiq/from_yaml` and `POST /api/v2/dfiq/to_archive` endpoints in your deployment's API logs.","plain_action":"","needs_analyst":false,"not_affected_if":["version-2.5.1-or-later","no-dfiq-import"],"who_is_affected":"Teams that run a self-hosted Yeti instance that accepts DFIQ YAML imports and allows low-privileged user accounts. Exposure depends on which filesystem paths the Yeti service account can write to; the separate DFIQ archive-import zip-slip issue is not covered by this entry.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000725,"input_tokens":4376,"output_tokens":574,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-63500':14A,17A '/api/v2/dfiq/from_yaml':107C '/api/v2/dfiq/to_archive':122C '2.5.1':96C,196C 'accept':98C 'account':74B,172C 'arbitrari':69B 'archiv':11A,52B,117C,141C,159C,178C 'archive-import':177C 'attack':64B,145C 'attacker-control':63B,144C 'authent':6A,127C 'bridg':78C 'candid':183C 'caus':143C 'contain':136C 'content':67B,147C 'control':65B,146C 'core/schemas/dfiq.py':97C 'core/web/apiv2/dfiq.py':109C 'craft':2A 'cti':82C 'cve':12A,15A 'dfiq':3A,36B,103C,132C,176C 'dfir':84C 'directori':160C 'export':49B,142C 'fail':29B 'file':9A 'filesystem':118C 'fix':193C 'forens':26B,89C 'gap':80C 'host':22B 'impact':162C 'import':35B,130C,179C 'intellig':27B,90C 'intend':157C 'interpol':111C 'issu':191C 'later':110C 'let':5A 'limit':164C 'locat':70B 'log':58B 'logged-in':57B 'low':55B,125C 'low-privileg':54B,124C 'object':38B,133C 'outsid':10A,155C 'packag':18B 'part':186C 'path':43B,119C,166C 'pipelin':93C 'platform':28B,91C 'post':106C,121C 'practition':85C 'prior':94C 'privileg':56B,126C 'provid':87C 'python':19B 'self':21B 'self-host':20B 'separ':175C 'sequenc':45B,138C 'servic':73B,171C 'slip':182C 'store':113C 'suffix':151C 'temporari':158C 'travers':44B,137C 'trigger':140C 'unvalid':100C 'use':47B 'user':7A,60B,128C 'uuid':4A,33B,41B,101C,135C 'valid':31B 'valu':114C 'version':195C 'vulner':189C 'whose':134C 'writabl':167C 'write':8A,62B,76B 'written':154C 'yaml':37B,66B,104C,150C 'yeti':1A,23B,24B,72B,77C,170C 'zip':181C 'zip-slip':180C","nicknames":[],"mitigations":[],"who_affected":"Teams that run a self-hosted Yeti instance that accepts DFIQ YAML imports and allows low-privileged user accounts. Exposure depends on which filesystem paths the Yeti service account can write to; the separate DFIQ archive-import zip-slip issue is not covered by this entry.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","package","python","selfhosted","yeti"],"campaign_type":null,"first_public_at":"2026-07-01T14:09:42+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-63500","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63500","severity":null,"published_at":"2026-11-03T20:18:16+00:00","modified_at":"2026-11-03T20:18:17+00:00","first_seen_at":"2026-11-03T20:49:23+00:00","fetched_at":"2026-11-03T20:49:23+00:00","note":null}],"documents":[{"id":60613,"url":"https://github.com/yeti-platform/yeti/commit/8e36bd0000f98f625540e37eeb9f304c684e8394","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":60608,"url":"https://github.com/yeti-platform/yeti/releases/tag/2.5.1","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":60615,"url":"https://github.com/yeti-platform/yeti/security/advisories/GHSA-6xf2-8436-rgvf","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-01T14:09:42+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}