Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to ruTorrent web UI
-
DeliveryCreate symlink under own top directory pointing outside jail
-
ExploitSubmit crafted datadir path via datadir plugin
-
Executionmkdir/rename follow symlink past topDirectory check
-
ImpactCreate directories and move data into web-writable location
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
|
| Exploitation Conditions | Requires a valid authenticated ruTorrent account (PR:L) with access to the datadir plugin, plus the ability to create a symbolic link within the attacker's assigned topDirectory that resolves to a path outside it; the attacker then submits a datadir value traversing that link. What LIMITS exploitation: authentication is mandatory (not remote-unauthenticated), the datadir plugin must be in use, the attacker must be able to place a symlink under their top directory (the AT:P attack requirement), and meaningful impact depends on sensitive destinations (e.g. web root) being writable by the web server or rtorrent. Exploitation does not require victim user interaction (UI:N). |
| Impact | This is a moderate-severity, authenticated integrity flaw rather than a drop-everything emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N) tells a consistent story with the description: exploitation is network-reachable through the ruTorrent web UI but requires an already-authenticated low-privileged account (PR:L) and a specific precondition - the attacker must plant a symlink under their own top directory (AT:P reflects this attack requirement). Impact is skewed to integrity (VI:H) - creating directories and moving torrent data into locations writable by the web server or rtorrent - with no confidentiality loss (VC:N) and only limited availability impact (VA:L). The vuln.today decision label is 'this_month', not act_now/emergency, and no EPSS score, CISA KEV listing, or confirmed exploit code was provided, so there is no signal of active exploitation or mass automated attack. The realistic risk is a post-authentication primitive (arbitrary directory creation / file placement in web-writable paths) that could be chained toward code execution if the web root or other sensitive directories are writable - meaningful for multi-user/seedbox deployments but gated behind valid credentials. EPSS and KEV data are absent (not low - simply not provided), so prioritization rests on the this_month decision label, confirmed vendor patch, and the authenticated-only requirement. |
| Exploit ScenarioDerived | A low-privileged but authenticated ruTorrent user creates a symbolic link inside their assigned top directory that points to a location outside the jail (e.g. a web-server-writable path), then uses the datadir plugin's 'set data directory' action to submit a datadir path that traverses that symlink. Because correctDirectory() validated the path only as written and the subsequent mkdir/rename/copy operations follow links, the download's files and new directories are created outside the intended jail. No public exploit was identified at time of analysis, and attack requires the attacker to control a symlink under their top directory (AT:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Path traversal in the datadir plugin of ruTorrent before 5.3.20 lets an authenticated user escape the configured topDirectory jail and have the web server create directories and move torrent data to locations outside it. The root cause is that correctDirectory() compares the submitted datadir as written and does not resolve symbolic links, while the downstream mkdir/rename/copy operations do follow them; an attacker who can place a symlink under their own top directory and then submit a datadir path through it can redirect torrent data to any path writable by the web server or rtorrent, such as the web root. Exploitation requires a valid ruTorrent account with datadir plugin access and the ability to create that symlink; no public exploit code was identified at time of analysis, and the vendor fix is in 5.3.20.
RemediationAI
Upgrade ruTorrent to 5.3.20 or later, which applies the upstream fix commit 2059ff12464b2ce14fd0f53df8d6b19fb6b8a5eb adding the symlink-resolving isInsideTopDirectory() check in both plugins/datadir/action.php and plugins/datadir/setdir.php (advisory: https://www.vulncheck.com/advisories/rutorrent-before-5.3.20-path-traversal-via-datadir-plugin-symlink-following, issue: https://github.com/Novik/ruTorrent/issues/3474). If upgrading immediately is not possible, disable the datadir plugin, which removes the ability to submit a datadir path at all (side effect: users lose per-torrent data-directory changes), and restrict filesystem permissions so that the account running the web server and rtorrent cannot write outside the intended download tree, particularly the web root (side effect: may break legitimate download relocation workflows). Note that filtering or escaping the datadir string alone does not address the flaw, since it depends on link resolution rather than path text.
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
ruTorrent is a PHP web frontend that drives an rtorrent daemon over SCGI. The datadir plugin (plugins/datadir/action.php, setdir.php) lets a user set the download data directory for a torrent; the guard is rTorrentSettings::get()->correctDirectory() in php/settings.php, which performs a string-prefix comparison of the submitted path against $topDirectory. Because that check never resolves symbolic links, it validates the path as text, not as the filesystem object it denotes. The subsequent rtMkDir() (mkdir) and the rename/copy moves performed by setdir.php operate on the resolved path and therefore follow any symlink inside the top directory that points outward, allowing writes and data moves outside the jail. This is CWE-59 (improper link resolution before file access, link following). The upstream fix adds rTorrent::isInsideTopDirectory(), which resolves links, and calls it in action.php before any work begins and again in setdir.php before mkdir, because setdir.php runs detached and a link could be created between the two steps; the commit also ships a regression test covering a link out of the tree, a link that stays inside, and a dangling link.
Know when Rutorrent 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
Web-reachable (AV:N) but requires an authenticated low-priv account (PR:L) and an attacker-planted symlink; integrity high from arbitrary directory creation/file moves, no confidentiality impact, limited availability.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
ruTorrent before 5.3.20 contains a path traversal vulnerability in the datadir plugin that allows authenticated users to escape the topDirectory jail because correctDirectory() does not resolve symbolic links. Attackers can submit a datadir path through a symlink under their top directory to create directories and move torrent data to locations writable by the web server or rtorrent.
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.
EUVD-2026-115891
GHSA-rh8c-6348-v25w
NVD
CVE.org
Exploit-DB