Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Docmost with local storage backend
-
DeliveryCraft traversal fileName in public avatar/logo request
-
ExploitBypass directory confinement, satisfy UUID basename check
-
ExecutionServer reads out-of-directory local object
-
ImpactRetrieve disclosed image/attachment content
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 | Requires a Docmost deployment (prior to 0.80.1) using the local filesystem storage driver, since the flaw resolves attacker-controlled fileName segments against local storage; instances backed by external/object storage are not the target described. Exploitation is unauthenticated and remote against the public avatar/logo image endpoint with no user interaction, but disclosure is limited to local-storage objects whose final basename satisfies the route's UUID check - arbitrary system files not matching that UUID pattern cannot be read, which caps confidentiality impact. |
| Impact | This is a genuine but modest-severity issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N, base 5.3) reflects an unauthenticated, network-reachable, low-complexity read-only information disclosure with limited confidentiality impact and no integrity or availability effect. No EPSS score, no CISA KEV listing, and no public proof-of-concept were provided, so exploitation status is 'no public exploit identified at time of analysis' - there is no evidence of active or automated exploitation. The C:L rating is well-justified by the description itself: the route enforces a UUID check on the final basename, so an attacker cannot read arbitrary paths, only local-storage objects whose filename satisfies that UUID pattern. This significantly constrains what can be exfiltrated (primarily other stored image/attachment objects rather than /etc/passwd or app secrets), making it a real-but-bounded traversal rather than a full arbitrary-file-read. No signals conflict; all point to a low-priority, patch-in-normal-cycle finding rather than an emergency. Note the public patch commit diff is dominated by unrelated dependency bumps and refactors - the actionable fix is the single sanitize-filename guard added in attachment.controller.ts. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a crafted request to Docmost's public avatar/logo image endpoint with path-traversal sequences in the fileName segment, causing the server to resolve a path outside the intended avatar/logo directory against local storage. Because the route still validates that the final basename matches a UUID, the attacker can retrieve other locally stored objects whose filename fits that pattern, disclosing content not meant for that endpoint. No public proof-of-concept is available, but the low attack complexity and lack of authentication make crafting the request straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
Unauthenticated path traversal in Docmost versions prior to 0.80.1 allows a remote attacker to read files from local storage by supplying attacker-controlled fileName path segments to the public avatar and logo image endpoint, which resolves them outside the intended image directory. Disclosure is constrained to local-storage objects whose final basename satisfies the route's UUID check, so arbitrary system files cannot be read; the assessed impact is confidentiality-only (CVSS 5.3) and the flaw requires a deployment using the local filesystem storage driver rather than external/object storage. No public exploit code has been identified at time of analysis and the issue is not confirmed as actively exploited, though the low attack complexity and lack of authentication make prompt upgrading to 0.80.1 advisable.
RemediationAI
Upgrade Docmost to version 0.80.1 or later, which is the vendor-released patch; the release is available at https://github.com/docmost/docmost/releases/tag/v0.80.1 and details are in advisory GHSA-9f58-29hm-mgp2, with the underlying fixes in commits a573acedd0317f3472cb0f8b95f6aa15315312e5 and ec83fc82d54bf3728eaa63b20eb4abcb5aef1d97. Operators who cannot upgrade immediately should treat the public avatar/logo image endpoint as the exposed surface: restrict or block external access to it at the reverse proxy (for example by requiring the request path match an expected UUID-only pattern and rejecting any percent-encoded or literal ../ segments), accepting that this may break legitimate avatar and logo rendering; alternatively, migrate the deployment to an external/object storage driver so attacker-controlled segments are not resolved against the local filesystem, noting this is a configuration change with migration effort and storage-cost implications. Because exploitation is unauthenticated, a WAF or proxy rule that normalizes and rejects traversal sequences in image request paths provides meaningful interim coverage, but such rules are bypassable via encoding variants and should be considered temporary until the 0.80.1 upgrade is applied.
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
The vulnerability is a classic CWE-22 path traversal in Docmost's media-serving layer. Docmost is a NestJS application running on Fastify (the fix commit bumps @fastify/static, @fastify/multipart, @nestjs/platform-fastify and other framework dependencies), and its public avatar/logo image endpoint accepts a caller-supplied fileName path segment that is concatenated onto a storage path without confinement to the intended avatar or logo directory. Because path resolution is performed by the local storage driver, sequences such as ../ can escape the image directory and reach sibling objects in local storage; however, the route still enforces a UUID pattern on the final basename, so only storage objects named like a UUID are retrievable. The upstream patch hardens input handling by introducing the sanitize-filename-ts library and rejecting file names that change when sanitized (throwing BadRequestException), and it removes the attacker-influenced avatarUrl and logo string fields from the user and workspace update DTOs so these paths can no longer be set directly. The same commit also reworks attachment export access resolution, batching a permission check so attachments are only exported when the requesting user can view the owning page - a defense-in-depth change bundled with the traversal fix.
Know when Docmost 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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Unauthenticated remote request to a public endpoint (AV:N/AC:L/PR:N/UI:N); read-only disclosure bounded by the UUID basename check yields C:L, with no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Docmost is open-source collaborative wiki and documentation software. Prior to 0.80.1, the public avatar and logo image endpoint accepts attacker-controlled fileName path segments and resolves them against local storage without confinement to the intended image directory. An unauthenticated attacker can traverse outside the avatar or logo directory and read local storage objects whose final basename satisfies the route's UUID check. This issue is fixed in version 0.80.1.
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.
Unauthenticated path traversal in Docmost v0.21.0's avatar attachment endpoint allows remote attackers to read arbitrary
Stored XSS in Docmost before version 0.25.0 allows authenticated attackers to inject malicious scripts into public share
Docmost versions 0.21.0 through 0.23.x contain a path traversal vulnerability in the zip import feature that allows auth
Stored XSS in Docmost 0.3.0-0.23.2 allows authenticated users to execute arbitrary JavaScript in the browsers of documen
Arbitrary local file and directory deletion on Docmost deployments that use local storage, exploitable by any authentica
Uncontrolled archive extraction in Docmost 0.21.0 through 0.95.0 lets any authenticated workspace member who holds edit
Docmost versions 0.3.0 through 0.70.x allow authenticated users with low privileges to overwrite arbitrary attachments b
Stored cross-site scripting in Docmost's comment system allows authenticated users to plant javascript: URI hyperlinks t
Stored cross-site scripting (XSS) in Docmost prior to version 0.71.0 allows authenticated users to inject malicious `jav
Workspace ADMIN accounts in Docmost prior to 0.90.1 can mint OWNER-level accounts through the workspace invitation flow,
Stored cross-site scripting (XSS) in Docmost prior to version 0.70.0 allows authenticated attackers to inject malicious
Authenticated workspace members in Docmost prior to 0.90.1 can read confidential sync-block content from private spaces
EUVD-2026-86389
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB