{"id":"CVE-2026-121448","kind":"vulnerability","aliases":["CVE-2026-121448"],"related":[],"title":"Dockhand: path traversal lets logged-in users read and overwrite secret files","description":"Dockhand before 1.0.54 contains a path traversal vulnerability that allows authenticated users to read, overwrite, and delete .env files outside the stacks root by double-encoding the stack name. Attackers can send %252e%252e sequences to /api/stacks/[name]/env/raw to disclose cross-environment secrets, write into protected directories, or poison deployment variables.","summary":"Dockhand before 1.0.54 lets an authenticated user use double-encoded path sequences in a stack name to reach .env files outside the stacks directory. An attacker can read cross-environment secrets, overwrite files in protected directories, or change deployment variables.","severity":"high","cvss":8.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["docker","dockhand","package","self-hosted"],"not_affected_if":["auth-required","managed-hosting"],"how_to_check":"- Check the installed Dockhand version against the fixed release `1.0.54`.\n- Look for exposed `/api/stacks/[name]/env/raw` requests in web server or proxy logs containing `%252e%252e`.","fix":"- Dockhand: upgrade to `1.0.54` or later.","status":"open","published_at":"2026-11-03T15:17:37+00:00","first_seen_at":"2026-11-03T15:22:01+00:00","triaged_at":"2026-11-03T15:22:31+00:00","updated_at":"2026-11-03T15:22:31+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-03T15:22:31Z","model":"claude-haiku-5-5","output":{"fix":"- Dockhand: upgrade to `1.0.54` or later.","reach":"network","title":"Dockhand: path traversal lets logged-in users read and overwrite secret files","impact":"high","summary":"Dockhand before 1.0.54 lets an authenticated user use double-encoded path sequences in a stack name to reach .env files outside the stacks directory. An attacker can read cross-environment secrets, overwrite files in protected directories, or change deployment variables.","audience":"businesses","category":"package","nicknames":[],"who_cares":["dockhand","self-hosted","docker"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker reads, overwrites, or deletes secret .env files across environments","analyst_note":"","how_to_check":"- Check the installed Dockhand version against the fixed release `1.0.54`.\n- Look for exposed `/api/stacks/[name]/env/raw` requests in web server or proxy logs containing `%252e%252e`.","plain_action":"","needs_analyst":false,"not_affected_if":["auth-required","managed-hosting"],"who_is_affected":"Teams running self-hosted Dockhand before 1.0.54 where users have accounts on the web interface or API. Exposure depends on who holds authenticated access to stack environment files; instances with only trusted, admin-only users carry less risk but should still upgrade.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.00068,"input_tokens":4193,"output_tokens":522,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-121448':16A,19A '-2026':15A,18A '/api/stacks':105C '/env/raw':107C '1.0.54':28B,70C '252e':101C,102C 'allow':77C 'attack':52B,98C 'authent':31B,78C 'chang':65B 'contain':71C 'cross':56B,111C 'cross-environ':55B,110C 'cve':14A,17A 'delet':84C 'deploy':66B,120C 'directori':50B,63B,117C 'disclos':109C 'docker':20B 'dockhand':1A,21B,26B,68C 'doubl':35B,93C 'double-encod':34B,92C 'encod':36B,94C 'env':45B,85C 'environ':57B,112C 'file':13A,46B,60B,86C 'host':25B 'let':4A,29B 'log':6A 'logged-in':5A 'name':42B,97C,106C 'outsid':47B,87C 'overwrit':11A,59B,82C 'packag':22B 'path':2A,37B,73C 'poison':119C 'protect':62B,116C 'reach':44B 'read':9A,54B,81C 'root':90C 'secret':12A,58B,113C 'self':24B 'self-host':23B 'send':100C 'sequenc':38B,103C 'stack':41B,49B,89C,96C 'travers':3A,74C 'use':33B 'user':8A,32B,79C 'variabl':67B,121C 'vulner':75C 'write':114C","nicknames":[],"mitigations":[],"who_affected":"Teams running self-hosted Dockhand before 1.0.54 where users have accounts on the web interface or API. Exposure depends on who holds authenticated access to stack environment files; instances with only trusted, admin-only users carry less risk but should still upgrade.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["docker","dockhand","high","package","selfhosted"],"first_public_at":"2026-10-19T08:37:46+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/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-121448","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121448","severity":null,"published_at":"2026-11-03T15:17:37+00:00","modified_at":"2026-11-03T15:17:37+00:00","first_seen_at":"2026-11-03T15:22:01+00:00","fetched_at":"2026-11-03T15:22:01+00:00","note":null}],"documents":[{"id":58423,"url":"https://github.com/Finsys/dockhand/security/advisories/GHSA-q2vc-4qcx-2vm6","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-19T08:37:46+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58424,"url":"https://www.vulncheck.com/advisories/dockhand-before-1.0.54-path-traversal-via-stack-environment-routes","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"}