CVE-2026-58170: Vibe-Trading Path Traversal in Trading Mandates
Vibe-Trading versions before 0.1.10 contain a path traversal vulnerability in how they handle trading proposal identifiers. An authenticated attacker can craft a proposal identifier with path traversal sequences (like '../') to load an arbitrary JSON file from the server as a live trading mandate. When combined with the file upload capability, an attacker can upload a malicious JSON file to a predictable location, then use path traversal to make the application load it as an authoritative trading instruction. Because the application skips validation of trading ceilings when they are absent from the JSON, the attacker gains full control over the committed trading mandate—potentially executing unauthorized trades or modifying trading parameters.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.3 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H
- Weaknesses (CWE)
- CWE-22
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-30 / 2026-07-14
NVD description (verbatim)
Vibe-Trading before 0.1.10 builds the proposal file path by joining a caller-supplied proposal identifier onto the broker proposals directory without sanitization (agent/src/live/mandate/commit.py). A proposal identifier containing path traversal sequences causes the application to load an attacker-controlled JSON file as an authoritative live trading mandate. Combined with the file upload endpoint, an admitted caller can write a JSON file to a known location and traverse to it, and because the ceilings validation is skipped when ceilings are absent, the attacker fully controls the committed mandate.
5 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-58170 is a path traversal vulnerability (CWE-22) in Vibe-Trading's proposal file loading mechanism, located in agent/src/live/mandate/commit.py. The vulnerability arises from unsanitized concatenation of a user-supplied proposal identifier directly into a file path without normalization or validation. An authenticated caller can inject path traversal sequences into the proposal identifier parameter, causing os.path.join() or similar path construction to resolve to an arbitrary location on the filesystem. When the application reads the resulting path expecting a JSON mandate file, it deserializes attacker-controlled data. The validation logic for trading ceilings is conditionally skipped when the 'ceilings' key is absent from the JSON, allowing an attacker to omit ceilings entirely and bypass this safety check. The CVSS 3.1 vector (8.3 HIGH) reflects network-accessible attack surface, low attack complexity, requirement for valid authentication (PR:L), and high impact on integrity and availability of trading operations.
Business impact
This vulnerability enables an authenticated user to execute unauthorized trades or inject rogue trading mandates into the live trading system. Organizations using Vibe-Trading for algorithmic or live trading operations face direct financial risk: an attacker could modify position limits, redirect trades, or commit capital in unintended ways. Because trading operations are time-sensitive and often involve significant sums, a compromised mandate file could result in material losses before detection and rollback. Regulatory and compliance exposure may also arise if unauthorized trades trigger reporting obligations or breach internal trading policies. The requirement for authentication limits the attacker pool to insiders or compromised user accounts, but the severity of impact—full mandate control—makes this a critical insider threat vector.
Affected systems
Vibe-Trading versions prior to 0.1.10 are affected. The vulnerability is present in the proposal file loading code path used by the live trading mandate system. Any deployment running Vibe-Trading 0.1.9 or earlier, particularly those exposing the proposal submission and file upload endpoints to authenticated users, is vulnerable. Verify your installed version by checking the package metadata or running the application's version command.
Exploitability
The attack requires valid authentication (PR:L in the CVSS vector), so it is not exploitable by anonymous users. However, the attack complexity is low: an attacker with a valid account needs only to (1) upload a malicious JSON file via the file upload endpoint, (2) note its storage path, and (3) submit a proposal identifier containing '../' sequences to traverse to that path. No special network conditions or user interaction are required. The path traversal itself is straightforward directory traversal syntax. Once the malicious mandate is loaded, the absence of ceiling validation in the attacker's crafted JSON ensures full control. Given typical trading workflows where authenticated traders submit proposals regularly, an insider threat actor or compromised credential could exploit this reliably.
Remediation
Upgrade Vibe-Trading to version 0.1.10 or later. The patch should include: (1) sanitization or normalization of proposal identifiers to reject or strip path traversal sequences, (2) validation that the resolved file path remains within the intended broker proposals directory, and (3) restoration of mandatory ceiling validation regardless of JSON structure. After patching, restart the trading service and verify that legacy or malicious proposal files are no longer accessible via path traversal.
Patch guidance
Apply the 0.1.10 release as soon as feasible, prioritizing this above routine updates because of the direct financial risk to trading operations. Before patching, restrict file upload permissions if possible and monitor proposal submission logs for suspicious identifiers containing path traversal patterns. Test the patch in a non-production environment to confirm that legitimate trading workflows continue and that historical proposals still load correctly. Verify that the patched version enforces ceiling validation for all proposals.
Detection guidance
Monitor agent logs in agent/src/live/mandate/commit.py for proposal identifiers containing path traversal sequences ('..' or '/' in unexpected positions). Correlate successful proposal submissions with file upload events to detect cases where an attacker uploads a file and immediately references it via traversal. Inspect the broker proposals directory for unexpected JSON files outside the normal naming convention or in subdirectories. Alert on any changes to the ceilings validation logic or gaps in mandate validation. If your system logs file I/O, watch for attempts to read proposal files from outside the designated proposals directory.
Why prioritize this
Although this vulnerability requires authentication, it directly threatens the integrity and availability of live trading operations and can result in unauthorized financial transactions. The ability to fully control trading mandates via a simple path traversal, combined with access to file uploads, makes this high-severity for any organization running Vibe-Trading. The 8.3 CVSS score reflects the confluence of high impact (I:H, A:H) and low attack complexity. Insider threat risk and credential compromise scenarios elevate practical urgency. Patching should be prioritized within days, not weeks.
Risk score, explained
The CVSS 3.1 score of 8.3 (HIGH) is assigned because: the vulnerability is reachable over a network (AV:N), requires low attack complexity (AC:L), necessitates prior authentication (PR:L) to trigger, does not require user interaction (UI:N), impacts only the vulnerable system scope (S:U), carries low confidentiality impact (C:L, likely log or config disclosure), but high integrity impact (I:H, attacker can commit any mandate) and high availability impact (A:H, attacker can disrupt trading or inject malicious positions). The authentication requirement prevents remote anonymous exploitation but does not reduce severity for authenticated users or internal threats. The practical impact on a trading system elevates this to actionable HIGH priority.
Frequently asked questions
Do I need to restart the application after patching?
Yes. After upgrading to 0.1.10, restart the Vibe-Trading service to ensure the patched code path is loaded. A simple code reload may not be sufficient if the application caches loaded modules.
Can an unauthenticated attacker exploit this vulnerability?
No. The CVSS vector includes PR:L (authentication required). An attacker must possess valid credentials or compromise an existing user account. However, if an insider or a low-privilege authenticated user exploits it, the impact is complete.
What is a 'ceiling' in the context of Vibe-Trading mandates?
Ceilings are upper limits or guardrails on trading parameters (such as maximum position size or notional exposure). When ceilings are absent from a mandate JSON, the application skips its validation logic, allowing an attacker to inject unrestricted trading instructions. The patch restores mandatory ceiling validation.
How can I check if I've been exploited?
Review your proposal submission audit logs for identifiers with path traversal sequences. Examine the broker proposals directory for unexpected or suspicious JSON files. Check trading logs for mandates with missing or anomalous ceiling values. If you find evidence, audit all trades executed under those mandates and consider rolling them back or canceling related positions.
This analysis is based on publicly disclosed vulnerability data as of the publication date. Vibe-Trading maintainers and affected organizations should verify patch availability and compatibility before deploying. SEC.co does not provide financial or trading advice; organizations must conduct their own risk assessment relative to their exposure and trading operations. Patch versions, CVE data, and vendor advisories may be updated; consult the official vendor security advisory for the most current guidance. This explainer is for informational purposes and does not constitute a guarantee of patch completeness or absence of related vulnerabilities. Source: NVD (public-domain), retrieved 2026-08-09. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20076HIGHWordPress Simple-Backup 2.7.11 Unauthenticated File Access & Deletion Vulnerability
- CVE-2016-20081HIGHHB Audio Gallery Lite Path Traversal Vulnerability – Unauthenticated File Download
- CVE-2017-20248HIGHApptha Slider Gallery Path Traversal Vulnerability
- CVE-2017-20250HIGHMac Photo Gallery 3.0 Path Traversal File Download Vulnerability
- CVE-2018-25408HIGHOpen ISES Project Path Traversal Vulnerability (High Severity)
- CVE-2024-32729HIGHPath Traversal in QuantumCloud Conversational Forms for ChatBot (CVSS 7.5)
- CVE-2024-40646HIGHVertex Path Traversal Vulnerability – Remote File Access Risk
- CVE-2025-60223HIGHWPBot Pro Arbitrary File Deletion Vulnerability – HIGH Risk Exploit