{"id":"CVE-2026-119596","kind":"vulnerability","aliases":["CVE-2026-119596"],"related":[],"title":"UNIT3D: missing authorization lets members download others' private playlists","description":"UNIT3D through 9.2.0 contains a missing authorization vulnerability in PlaylistZipController::show that allows authenticated users to download other members' private playlists. Attackers can enumerate sequential playlist ids at the /playlist-zips/{playlist} endpoint to obtain zips of all torrents, disclosing private collection membership.","summary":"UNIT3D through 9.2.0 has a missing authorization check in PlaylistZipController::show, so any logged-in user can download zip files of other members' private playlists. An attacker can walk sequential playlist IDs at /playlist-zips/{playlist} to collect torrent contents and reveal private collection membership.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","private-tracker","self-hosted","unit3d"],"not_affected_if":["no-playlist-feature","version-above-9.2.0"],"how_to_check":"- Check the installed UNIT3D version: `unknown` version command, look at the version in the project's config or git tag\n- Confirm the playlist zip route exists by looking for `PlaylistZipController` in the app's controllers directory","fix":null,"status":"open","published_at":"2026-10-30T14:16:47+00:00","first_seen_at":"2026-10-30T14:30:54+00:00","triaged_at":"2026-10-30T14:32:58+00:00","updated_at":"2026-10-30T14:32:58+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-30T14:32:58Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"UNIT3D: missing authorization lets members download others' private playlists","impact":"low","summary":"UNIT3D through 9.2.0 has a missing authorization check in PlaylistZipController::show, so any logged-in user can download zip files of other members' private playlists. An attacker can walk sequential playlist IDs at /playlist-zips/{playlist} to collect torrent contents and reveal private collection membership.","audience":"businesses","category":"package","nicknames":[],"who_cares":["unit3d","self-hosted","private-tracker"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"Authenticated users read other members' private playlist contents and membership.","analyst_note":"Check the UNIT3D repository or NVD entry for a fixed release after 9.2.0 and confirm the patched controller check.","how_to_check":"- Check the installed UNIT3D version: `unknown` version command, look at the version in the project's config or git tag\n- Confirm the playlist zip route exists by looking for `PlaylistZipController` in the app's controllers directory\n- unknown","plain_action":"","needs_analyst":true,"not_affected_if":["version-above-9.2.0","no-playlist-feature"],"who_is_affected":"UNIT3D instances up to and including 9.2.0 with playlist zip downloads reachable by registered users are exposed. Sites that run a private tracker with no playlist feature, or that have an updated version, can skip it. The sources do not state a fixed version.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.0007,"input_tokens":4144,"output_tokens":572,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-119596':12A,15A '-2026':11A,14A '/playlist-zips':58B,98C '9.2.0':26B,71C 'allow':81C 'attack':51B,90C 'authent':82C 'author':3A,30B,75C 'check':31B 'collect':61B,67B,109C 'contain':72C 'content':63B 'cve':10A,13A 'disclos':107C 'download':6A,42B,85C 'endpoint':100C 'enumer':92C 'file':44B 'host':22B 'id':56B,95C 'let':4A 'log':38B 'logged-in':37B 'member':5A,47B,87C 'membership':68B,110C 'miss':2A,29B,74C 'obtain':102C 'other':7A 'packag':16B 'playlist':9A,49B,55B,59B,89C,94C,99C 'playlistzipcontrol':33B,78C 'privat':8A,18B,48B,66B,88C,108C 'private-track':17B 'reveal':65B 'self':21B 'self-host':20B 'sequenti':54B,93C 'show':34B,79C 'torrent':62B,106C 'tracker':19B 'unit3d':1A,23B,24B,69C 'user':40B,83C 'vulner':76C 'walk':53B 'zip':43B,103C","nicknames":[],"mitigations":[],"who_affected":"UNIT3D instances up to and including 9.2.0 with playlist zip downloads reachable by registered users are exposed. Sites that run a private tracker with no playlist feature, or that have an updated version, can skip it. The sources do not state a fixed version.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"first_public_at":"2026-10-30T14:16:47+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/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-119596","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119596","severity":null,"published_at":"2026-10-30T14:16:47+00:00","modified_at":"2026-10-30T14:16:47+00:00","first_seen_at":"2026-10-30T14:30:54+00:00","fetched_at":"2026-10-30T14:30:54+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}