Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain collaborator write access to shared store
-
DeliveryCommit entry named with ../ traversal sequences
-
ExploitVictim pulls crafted entry via gopass sync
-
ExecutionVictim runs recursive gopass rm -r
-
ImpactPrune os.RemoveAll deletes external directory tree
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires all of the following concrete conditions: (1) gopass is used with a shared, multi-user, git-synced password store (the single-user case has no untrusted entry source); (2) the attacker is a collaborator holding legitimate write access to that shared store; (3) the attacker creates an entry whose name embeds ../ path-traversal sequences, which reaches the victim through a normal git pull / gopass sync; (4) the victim executes the recursive delete command 'gopass rm -r <crafted entry>', whose name flows unvalidated into Store.Prune → os.RemoveAll. Limiting factors that reduce real-world risk: the vulnerable operation is local and needs explicit victim interaction (running recursive delete against the specific crafted entry), the attacker must already be a trusted write-capable store member, and the destructive impact is bounded by the filesystem write permissions of the user running gopass. Affected: gopass versions before 1.17.0 (<= 1.16.1); fixed in 1.17.0, which routes IsDir and Prune through the safePath containment check. |
| Impact | The vendor-assigned CVSS 4.0 score is 6.7 (Medium) with vector AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H, meaning a locally-triggered, low-complexity flaw with no confidentiality or integrity impact but high availability impact (destructive directory deletion). The defining tension is between delivery and trigger: the malicious payload (a crafted ../ entry name) is introduced remotely by a git collaborator and propagates through an ordinary gopass sync, yet the destructive action only fires when the victim locally runs 'gopass rm -r' against that entry - hence AV:L and mandatory user interaction (UI:A), not a remote push-button exploit. No EPSS score is provided in the input and the CVE is not listed in CISA KEV, so there is no evidence of active exploitation; exploitation status is 'no public exploit identified at time of analysis' (the GHSA advisory states a PoC exists but only 'available upon request', so no public exploit code is available). The vuln.today decision label is 'this_month', consistent with a patched Medium-severity destructive bug rather than an emergency. One signal to verify: the official vector uses PR:N, but real-world exploitation requires the attacker to be an authenticated collaborator with legitimate write access to the shared store, which is a genuine privilege prerequisite - treat the 'unauthenticated' implication of PR:N with caution. Overall this is a real but conditional priority: destructive and low-complexity once conditions are met, but gated behind multi-user shared-store usage, a malicious insider/collaborator, and a specific victim action. A fixed version (1.17.0) is available, so patching resolves it. |
| Exploit ScenarioDerived | A malicious collaborator with legitimate write access to a shared, git-synced gopass store commits a secret whose name contains ../ path-traversal segments. After the victim syncs the store (git pull / gopass sync) and runs the routine recursive delete 'gopass rm -r' against that entry, gopass's Prune calls os.RemoveAll on the escaped path and destroys an arbitrary directory tree outside the store root, bounded only by the victim's filesystem write permissions. The advisory references a proof-of-concept as available upon request, but no public exploit code is listed; exploitation is local (AV:L) and requires the victim to actively invoke the delete. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Path traversal in gopass's filesystem storage backend lets a write-capable collaborator on a shared, git-synced password store plant a crafted entry name containing ../ sequences; when a victim runs gopass rm -r on that entry, Prune calls os.RemoveAll on a path outside the store root and can delete arbitrary directory trees the victim can write to. The issue affects gopass before 1.17.0 and is fixed in 1.17.0. Exploitation requires the victim to run recursive delete against the crafted entry, so it is local, interactive, and bounded by filesystem permissions; no confirmed public exploit code is identified, and the advisory states a PoC is available upon request.
RemediationAI
Upgrade to gopass 1.17.0, which routes IsDir and Prune through safePath and adds regression tests; the release tag is https://github.com/gopasspw/gopass/releases/tag/v1.17.0 and the fix commit is https://github.com/gopasspw/gopass/commit/4f76ed537d8293ab88959a31a932dd9b3112a0a2. No separate vendor workaround is documented. Until patched, the exposure is specific to multi-user git-synced stores, so restrict write access to trusted collaborators and avoid running gopass rm -r against entry names arriving from a shared store without inspecting them for ../ components, because the recursive delete path flows unvalidated into Prune and os.RemoveAll.
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
gopass is a Go-based CLI password manager whose on-disk backend is internal/backend/storage/fs.Store. The backend has a safePath helper that validates a name resolves under the store root; Get, Set, Move, Delete, and Exists use it, but IsDir and Prune build paths with raw filepath.Join(s.path, filepath.Clean(name)), and Prune then calls os.RemoveAll. The call path from internal/store/leaf/move.go passes the entry name through deleteRecurse to storage.Prune unmodified except for trimming a leading separator, so no traversal validation occurs above the storage backend. This is CWE-22 and was addressed by routing IsDir and Prune through safePath and adjusting safePath to permit the store root itself. The vendor CVSS 4.0 score is 6.7 Medium with AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H; the independent assessed CVSS 3.1 vector is AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:H, reflecting a locally triggered, low-complexity issue that requires collaborator write access and victim interaction, with no confidentiality or integrity impact and high availability impact from destructive directory deletion.
Know when Gopass 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:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Victim locally runs rm -r (AV:L/UI:R); attacker needs collaborator write access to the shared store (PR:L); arbitrary directory deletion yields A:H with no confidentiality or integrity read.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
gopass before 1.17.0 contains a path traversal vulnerability in the filesystem storage backend that allows attackers to delete directories outside the password store via ../ entry names in Prune and IsDir. Collaborators with write access to a shared git-synced store can introduce crafted entries, causing a victim's recursive gopass rm -r to delete arbitrary directory trees.
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-112500
GHSA-g69m-c6cf-wpcv
NVD
CVE.org
Exploit-DB