Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
ExploitImport DFIQ YAML with traversal UUID
-
ExecutionTrigger POST /api/v2/dfiq/to_archive export
-
ImpactWrite attacker-controlled .yaml outside temp dir
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a valid authenticated YETI account (non-admin is sufficient, PR:L) with permission to import DFIQ YAML via POST /api/v2/dfiq/from_yaml and to trigger DFIQ archive export via POST /api/v2/dfiq/to_archive. The specific trigger is a DFIQ object whose uuid field is set to a string containing path-traversal sequences (e.g. '../../../../tmp/yeti_dfiq_pwn'), which core/schemas/dfiq.py accepts without validating it as a real UUID and core/web/apiv2/dfiq.py then interpolates directly into the export filesystem path. Limiting factors that reduce realistic risk: authentication is required (not remote-unauthenticated), the primitive is write-only with attacker-controlled content forced to carry a .yaml suffix, and the reachable targets are bounded strictly to paths writable by the YETI service account. Further escalation beyond file write is not guaranteed and depends on deployment-specific writable paths and whether another component later loads the written YAML. |
| Impact | This is a genuine but moderate-priority issue, consistent with its 7.1 CVSS and the vuln.today 'this_week' decision label rather than an emergency. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L is network-reachable and low-complexity, but PR:L means a valid authenticated account is a hard prerequisite, which substantially narrows the exploit population to insiders or attackers who already hold credentials. Impact is scoped as I:H / A:L with C:N - a write-only arbitrary-file-write primitive, not code execution or data disclosure, and the advisory is explicit that it does not claim universal RCE. No EPSS score is provided in the input and the CVE is not on CISA KEV, so there is no signal of active or widespread exploitation; however, a detailed, lab-verified proof-of-concept is published in the GHSA advisory, so exploitability is well-established even if weaponization in the wild is not. Net: a real, confirmed, fixable vulnerability worth patching on a normal cycle, but the authentication requirement and write-only impact keep it below drop-everything urgency; the main residual risk is escalation if a written .yaml file is later loaded by another component, which the advisory flags as deployment-dependent and unproven. |
| Exploit ScenarioDerived | A low-privileged authenticated analyst imports a DFIQ object via POST /api/v2/dfiq/from_yaml whose uuid field contains a traversal sequence such as '../../../../../../tmp/yeti_dfiq_pwn', then calls POST /api/v2/dfiq/to_archive to trigger export. During export YETI interpolates the unvalidated uuid into the output path and writes attacker-controlled YAML content to a .yaml file outside the temporary archive directory, limited to locations writable by the YETI service account. A working PoC verified in the reporter's authorized lab is published in the GHSA advisory; it is not independently verified as a weaponized exploit against production deployments. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Path traversal in YETI's DFIQ import/export pipeline allows a low-privileged authenticated user to write attacker-controlled YAML content outside the intended temporary archive directory. Importing a DFIQ object whose uuid field carries traversal sequences through POST /api/v2/dfiq/from_yaml, then calling POST /api/v2/dfiq/to_archive, causes the service to create a .yaml file at an arbitrary path the YETI service account can write; the primitive is write-only and the filename suffix is forced. YETI releases prior to 2.5.1 are affected, the vendor advisory includes a proof-of-concept that was reproduced against an authorized lab instance, and there is no CISA KEV listing indicating active exploitation in real deployments.
RemediationAI
Vendor-released patch: upgrade to YETI 2.5.1, which validates uuid as a real UUID at DFIQ YAML import and confines export writes to the resolved temporary archive base (rejecting traversal with HTTP 400). Apply the fix through the 2.5.1 release (https://github.com/yeti-platform/yeti/releases/tag/2.5.1) or cherry-pick commit 8e36bd0000f98f625540e37eeb9f304c684e8394 / PR https://github.com/yeti-platform/yeti/pull/1279; advisory details are in GHSA-6xf2-8436-rgvf. Because malicious UUID values are persisted at import time in ArangoDB, upgrading does not clean existing records - audit stored DFIQ objects for uuid values that are not valid UUIDs before triggering any archive export, and delete or correct them. If the upgrade cannot be applied immediately, the practical compensating control is to restrict access to POST /api/v2/dfiq/from_yaml and POST /api/v2/dfiq/to_archive to administrator accounts, understanding that this removes DFIQ import/export capability from analyst workflows; running the YETI service account with write access to the narrowest possible set of directories also limits where the traversal can land, at the cost of tighter operational constraints on data/temp paths.
Affected VersionsENISA
Affected Packages
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
YETI (Your Everyday Threat Intelligence) is a Python application, typically served by Uvicorn/FastAPI-style APIV2 endpoints with ArangoDB and Redis backing services, that ingests DFIQ (Detection & Forensics Investigation Questions) objects as YAML. The root cause is CWE-22 / CWE-73: the YAML parser in core/schemas/dfiq.py validates several DFIQ fields but accepts uuid as an unconstrained string, so nothing enforces that it is a real UUID or a safe single filename component. During archive export in core/web/apiv2/dfiq.py the stored identifier is interpolated straight into a filesystem path (f"{tempdir}/public/{obj.uuid}.yaml"), which lets ../ sequences escape the per-request temporary directory and land in any directory writable by the service account. The upstream fix adds uuid.UUID(str(value)) validation at parse time and, in the export handler, resolves the base and target paths with pathlib.Path and rejects writes whose resolved target is not is_relative_to the base (HTTP 400 'Invalid DFIQ UUID in export path'), with tests migrated from fake identifiers to real UUIDs. The advisory explicitly separates this from the previously reported /from_archive zip-slip candidate, which was refuted because Python's ZipFile.extractall() normalizes .. components; the two issues share a code area but not a root cause or fix.
Know when Yeti 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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
Network API exploitation with a simple payload (AV:N/AC:L), requires a low-privileged authenticated account (PR:L), write-only primitive so C:N, arbitrary file write gives I:H and possible corruption/disk-fill A:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
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.
Technical POC Analysis
CWE-22 (Path Traversal), with the advisory also tagging CWE-73 (External Control of File Name or Path).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-63500 is a high-severity path traversal vulnerability in YETI's DFIQ import/export pipeline that could allow a low-privileged authenticated user to write arbitrary YAML files outside intended directories, potentially enabling data tampering or service disruption. While no active exploitation has been observed, the availability of a public proof-of-concept increases the urgency for organizations using YETI versions prior to 2.5.1 to apply mitigations and plan upgrades.
No vendor-released patch identified at time of analysis. Interim mitigations include restricting access to the DFIQ import/export API endpoints to trusted users, monitoring for suspicious file writes, and disabling the functionality if not critical.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Yeti bridges the gap between CTI and DFIR practitioners by providing a Forensics Intelligence platform and pipeline. Rat
Authenticated path traversal in Yeti (YETI threat-intelligence platform) prior to 2.5.1 lets a low-privileged, non-admin
Authenticated AQL injection in YETI 2.5.0 and earlier lets any low-privileged analyst account push attacker-controlled s
Unauthenticated information disclosure in Yeti Platform (yeti-platform/yeti) before 2.5.1: the audit router is mounted o
Authenticated users with only read access can delete RBAC relationships in Yeti through 2.11.0, revoking owner grants an
EUVD-2026-116268
NVD
CVE.org
GitHub
Exploit-DB