{"id":"CVE-2026-121546","kind":"vulnerability","aliases":["CVE-2026-121546"],"related":[],"title":"ruTorrent: datadir plugin path traversal lets users escape their directory jail","description":"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.","summary":"ruTorrent's datadir plugin does not resolve symbolic links when checking directory paths, so a logged-in user can point a torrent's data directory through a symlink outside their allowed folder. An attacker can then create directories and move torrent data into locations the web server or rtorrent can write to.","severity":"medium","cvss":6.0,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","rutorrent","self-hosted","torrent-seedbox"],"not_affected_if":["datadir-plugin-disabled","no-untrusted-accounts","single-user-install"],"how_to_check":"- Check the installed ruTorrent version and whether it is below `5.3.20`.\n- Look for the datadir plugin being enabled in the ruTorrent plugin configuration.","fix":"- Upgrade ruTorrent to `5.3.20` or later.","status":"open","published_at":"2026-11-03T16:17:26+00:00","first_seen_at":"2026-11-03T16:21:43+00:00","triaged_at":"2026-11-03T16:24:12+00:00","updated_at":"2026-11-03T16:24:12+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-03T16:24:12Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade ruTorrent to `5.3.20` or later.","reach":"internet","title":"ruTorrent: datadir plugin path traversal lets users escape their directory jail","impact":"medium","summary":"ruTorrent's datadir plugin does not resolve symbolic links when checking directory paths, so a logged-in user can point a torrent's data directory through a symlink outside their allowed folder. An attacker can then create directories and move torrent data into locations the web server or rtorrent can write to.","audience":"businesses","category":"package","nicknames":[],"who_cares":["rutorrent","self-hosted","torrent-seedbox"],"confidence":0.6,"fix_status":"available","needs_auth":"yes","worst_case":"user writes files outside jail, possibly enabling further server compromise","analyst_note":"","how_to_check":"- Check the installed ruTorrent version and whether it is below `5.3.20`.\n- Look for the datadir plugin being enabled in the ruTorrent plugin configuration.\n- unknown if the sources give any other check.","plain_action":"","needs_analyst":false,"not_affected_if":["single-user-install","datadir-plugin-disabled","no-untrusted-accounts"],"who_is_affected":"Teams that run ruTorrent with multiple users who have accounts and a topDirectory restriction, where the datadir plugin is in use. Single-user installs where only trusted people have logins carry less risk. The sources do not say whether the plugin is enabled by default.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000695,"input_tokens":4184,"output_tokens":554,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-121546':14A,17A '-2026':13A,16A '5.3.20':80C 'allow':57B,91C 'attack':60B,106C 'authent':92C 'check':36B 'contain':81C 'correctdirectori':100C 'creat':63B,120C 'cve':12A,15A 'data':50B,68B,125C 'datadir':2A,28B,88C,110C 'directori':10A,37B,51B,64B,118C,121C 'escap':8A,95C 'folder':58B 'host':22B 'jail':11A,98C 'let':6A 'link':34B,105C 'locat':70B,127C 'log':42B 'logged-in':41B 'move':66B,123C 'outsid':55B 'packag':18B 'path':4A,38B,83C,111C 'plugin':3A,29B,89C 'point':46B 'resolv':32B,103C 'rtorrent':75B,134C 'rutorr':1A,19B,26B,78C 'seedbox':25B 'self':21B 'self-host':20B 'server':73B,132C 'submit':108C 'symbol':33B,104C 'symlink':54B,114C 'top':117C 'topdirectori':97C 'torrent':24B,48B,67B,124C 'torrent-seedbox':23B 'travers':5A,84C 'user':7A,44B,93C 'vulner':85C 'web':72B,131C 'writabl':128C 'write':77B","nicknames":[],"mitigations":[],"who_affected":"Teams that run ruTorrent with multiple users who have accounts and a topDirectory restriction, where the datadir plugin is in use. Single-user installs where only trusted people have logins carry less risk. The sources do not say whether the plugin is enabled by default.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","rutorrent","selfhosted","torrentseedbox"],"campaign_type":null,"first_public_at":"2026-11-03T16:17:26+00:00","kev":null,"cvss_vector":"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/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":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-121546","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121546","severity":null,"published_at":"2026-11-03T16:17:26+00:00","modified_at":"2026-11-03T16:17:26+00:00","first_seen_at":"2026-11-03T16:21:43+00:00","fetched_at":"2026-11-03T16:21:43+00:00","note":null}],"documents":[{"id":58828,"url":"https://github.com/Novik/ruTorrent/commit/2059ff12464b2ce14fd0f53df8d6b19fb6b8a5eb","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":58829,"url":"https://www.vulncheck.com/advisories/rutorrent-before-5.3.20-path-traversal-via-datadir-plugin-symlink-following","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.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"}