{"id":"CVE-2026-121449","kind":"vulnerability","aliases":["CVE-2026-121449"],"related":[],"title":"Dockhand: deploy responses leak plaintext stack secrets to authorized users","description":"Dockhand from 1.0.47 before 1.0.54 exposes plaintext stack secrets because deployStack() attaches resolved secret values to its result as resolvedSecrets, which Git-stack routes return unfiltered. Holders of a stack's webhook secret or users with stacks:start permission can trigger the Git stack webhook, manual deploy, or create-and-deploy endpoints to receive stored and external-provider secrets such as 1Password or Vault values.","summary":"Dockhand versions 1.0.47 before 1.0.54 attach resolved secret values to the result of deployStack(), and Git-stack routes return that result unfiltered. Holders of a stack's webhook secret or users with stacks:start permission can receive stored and external-provider secrets such as 1Password or Vault values.","severity":"high","cvss":7.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["docker","dockhand","other","secrets","self-hosted"],"not_affected_if":["no-git-stacks","no-stored-secrets","version-1.0.54-or-later"],"how_to_check":"- Check the installed Dockhand version against the range `1.0.47` to `1.0.54`\n- Look for Git-based stacks that use secrets from 1Password or Vault\n- Review which accounts hold `stacks:start` permission or know a stack's webhook secret","fix":"- Upgrade Dockhand 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:54+00:00","updated_at":"2026-11-03T15:22:54+00:00","category":"other","confidence":0.8,"triage":{"at":"2026-11-03T15:22:54Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Dockhand to `1.0.54` or later","reach":"network","title":"Dockhand: deploy responses leak plaintext stack secrets to authorized users","impact":"high","summary":"Dockhand versions 1.0.47 before 1.0.54 attach resolved secret values to the result of deployStack(), and Git-stack routes return that result unfiltered. Holders of a stack's webhook secret or users with stacks:start permission can receive stored and external-provider secrets such as 1Password or Vault values.","audience":"businesses","category":"other","nicknames":[],"who_cares":["dockhand","self-hosted","docker","secrets"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"stored and vault secret values readable by authorized users","analyst_note":"","how_to_check":"- Check the installed Dockhand version against the range `1.0.47` to `1.0.54`\n- Look for Git-based stacks that use secrets from 1Password or Vault\n- Review which accounts hold `stacks:start` permission or know a stack's webhook secret","plain_action":"","needs_analyst":false,"not_affected_if":["version-1.0.54-or-later","no-git-stacks","no-stored-secrets"],"who_is_affected":"Teams running Dockhand from 1.0.47 up to but not including 1.0.54 that deploy Git-based stacks with secrets. Exposure comes from the deploy and webhook responses, so users with stacks:start permission or holders of a stack's webhook secret can read the secret values. Installations on 1.0.54 or later, or without stored secrets, are not affected by this report.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000726,"input_tokens":4242,"output_tokens":603,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-121449':13A,16A '-2026':12A,15A '1.0.47':26B,76C '1.0.54':28B,78C '1password':70B,138C 'attach':29B,85C 'author':9A 'creat':124C 'create-and-deploy':123C 'cve':11A,14A 'deploy':2A,121C,126C 'deploystack':37B,84C 'docker':17B 'dockhand':1A,18B,24B,74C 'endpoint':127C 'expos':79C 'extern':65B,133C 'external-provid':64B,132C 'git':40B,96C,117C 'git-stack':39B,95C 'holder':47B,101C 'host':23B 'leak':4A 'manual':120C 'permiss':59B,113C 'plaintext':5A,80C 'provid':66B,134C 'receiv':61B,129C 'resolv':30B,86C 'resolvedsecret':93C 'respons':3A 'result':35B,45B,91C 'return':43B,99C 'rout':42B,98C 'secret':7A,20B,31B,53B,67B,82C,87C,107C,135C 'self':22B 'self-host':21B 'stack':6A,41B,50B,57B,81C,97C,104C,111C,118C 'start':58B,112C 'store':62B,130C 'trigger':115C 'unfilt':46B,100C 'user':10A,55B,109C 'valu':32B,73B,88C,141C 'vault':72B,140C 'version':25B 'webhook':52B,106C,119C","nicknames":[],"mitigations":[],"who_affected":"Teams running Dockhand from 1.0.47 up to but not including 1.0.54 that deploy Git-based stacks with secrets. Exposure comes from the deploy and webhook responses, so users with stacks:start permission or holders of a stack's webhook secret can read the secret values. Installations on 1.0.54 or later, or without stored secrets, are not affected by this report.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["docker","dockhand","high","other","secrets","selfhosted"],"first_public_at":"2026-10-19T08:38:06+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/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-121449","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121449","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":58425,"url":"https://github.com/Finsys/dockhand/commit/a08843a8d5ab1d91fa2c6c392919f9117d582471","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":58426,"url":"https://github.com/Finsys/dockhand/security/advisories/GHSA-w9qx-qg64-f8pf","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-19T08:38:06+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58427,"url":"https://www.vulncheck.com/advisories/dockhand-1.0.47-before-1.0.54-secret-disclosure-via-git-stack-webhook","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"}