Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Outline with import rights
-
DeliveryCraft ZIP with over-length nested entry path
-
ExploitUpload via document import
-
ExecutiontrimFileAndExt strips directories to bare filename
-
PersistFile written to process working directory outside sandbox
-
ImpactMalicious file persists after cleanup
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 an authenticated Outline account with permission to use the document/collection ZIP import feature (vendor CVSS marks PR:H; in practice import may be available to standard members - confirm your permission model). The attacker must supply a crafted import archive containing an entry whose nested internal path is long enough that the full joined filesystem path exceeds MAX_PATH_LENGTH (4096 bytes), which is the exact trigger that makes trimFileAndExt drop directory components. Limiting factors: exploitation only affects Outline versions prior to 1.7.0, needs the import functionality to be enabled and reachable, and produces a write of a bare-filename file into the process working directory rather than arbitrary path traversal - the attacker does not control the target directory, only the filename, and gains no confidentiality/read access. |
| Impact | Signals are mixed and lean toward moderate, targeted risk rather than mass exploitation. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:H/A:H, 8.7 High) indicates a remotely reachable, low-complexity issue that nonetheless requires elevated privileges (PR:H) and yields no confidentiality loss but high integrity/availability impact with a scope change - consistent with an authenticated actor corrupting files outside the sandbox. SSVC aligns: Exploitation=poc, Automatable=no, Technical Impact=total. EPSS is only 0.04% (12th percentile) and the CVE is NOT in CISA KEV, so there is no evidence of active or automated exploitation. The main tension is privilege level versus real-world feature exposure: the vendor rated PR:H, but document import in Outline is often available to ordinary members, which would lower the true barrier - verify the import-permission model in your deployment. Note also the vector marks C:N while integrity/availability are High, meaning the practical damage is unwanted/overwritten files in the working directory rather than data theft; the actual severity depends on what sensitive files live in the process CWD. |
| Exploit ScenarioDerived | An authenticated user permitted to import documents crafts a ZIP whose single entry uses a deeply nested internal path long enough to push the joined extraction path past 4096 bytes, then uploads it through Outline's import feature. During extraction the directory components are silently stripped, and the attacker-controlled file is written by its bare name into the server's process working directory, where it persists after import cleanup - potentially overwriting a file the application relies on. Public POC-level detail exists per SSVC, lowering the effort to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 23, 2026
Zip extraction sandbox escape in Outline (self-hosted collaborative knowledge base) before 1.7.0 lets an authenticated user with import privileges write an attacker-named file into the server's process working directory instead of the isolated extraction folder. A crafted import archive whose nested entry path exceeds the 4096-byte MAX_PATH_LENGTH causes the trimFileAndExt helper to collapse the path to a bare filename, and the resulting file survives normal import cleanup. Publicly available exploit code exists per SSVC (POC), but there is no public exploit identified in the wild and EPSS probability is very low (0.04%).
RemediationAI
Vendor-released patch: upgrade Outline to 1.7.0 or later, which corrects ZipHelper.extract so extraction paths are no longer collapsed to a bare filename. If immediate upgrade is not possible, restrict who can perform document/collection imports to trusted administrators only (reducing exposure of the privileged import path), and consider temporarily disabling ZIP import workflows - the trade-off is loss of bulk-import functionality for end users. As a hardening measure, run the Outline server process from a dedicated, minimal working directory that contains no sensitive or overwritable files, so any escaped write lands in a low-value location; note this does not prevent the escape, only limits its impact. Review the advisory at https://github.com/outline/outline/security/advisories/GHSA-hw32-2v7j-mgqc for authoritative fix guidance.
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
Outline is a Node.js/TypeScript collaborative documentation ('team wiki') platform that supports importing content from uploaded ZIP archives. The flaw lives in ZipHelper.extract, which builds each entry's destination by joining the sandbox directory with the entry's internal path and then passing that full filesystem path through trimFileAndExt - a filename-truncation helper that internally calls path.basename. When the joined path grows beyond MAX_PATH_LENGTH (4096 bytes), trimFileAndExt discards every directory component and returns only the base filename, so fs.createWriteStream resolves it relative to the process working directory rather than the intended extraction sandbox. This is a classic CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / path traversal) root cause, here expressed not as '../' sequences but as an implicit escape triggered by a path-length edge case; cleanupExtractedData only deletes the temporary extraction directory, so the escaped artifact persists. Affected component per CPE is cpe:2.3:a:outline:outline:*:*:*:*:*:*:*:*.
Know when Outline 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:H/UI:N/S:C/C:N/I:H/A:H
Import is typically available to authenticated members so PR:L (vendor used PR:H); sandbox escape justifies S:C, arbitrary-filename write gives I:H, C:N, and A:L since only working-dir files may be clobbered.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
2DescriptionGitHub Advisory
Outline is a service that allows for collaborative documentation. Prior to 1.7.0, ZipHelper.extract computes the extraction path for each entry by passing a full filesystem path through trimFileAndExt, a filename helper that calls path.basename on its input when truncating. When a zip entry's nested path is long enough to push the joined filesystem path over MAX_PATH_LENGTH (4096 bytes), trimFileAndExt silently drops all directory components and returns a bare filename. fs.createWriteStream then opens the file relative to the process working directory instead of inside the extraction sandbox, and the escaped file persists after import cleanup because cleanupExtractedData only removes the temporary extraction directory. This vulnerability is fixed in 1.7.0.
Executive ViewAI
Outline self-hosted knowledge base versions before 1.7.0 contain a sandbox escape vulnerability affecting authenticated users with import privileges, enabling arbitrary file writes to the server's working directory and potential unauthorized data access. This risk impacts any organization using Outline for collaborative knowledge management; patch availability enables rapid remediation within one week.
Apply vendor patch.
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.
An issue in Outline <= v0.76.1 allows attackers to execute a session hijacking attack via user interaction with a crafte
Outline versions up to - contains a vulnerability that allows attackers to potentially execute arbitrary code with eleva
An issue in Outline <= v0.76.1 allows attackers to redirect a victim user to a malicious site via intercepting and chang
Outline versions prior to 1.4.0 fail to validate attachment file paths during JSON import, allowing authenticated attack
Outline is an open source, collaborative document editor. Rated medium severity (CVSS 5.4), this vulnerability is remote
Cross-site Scripting (XSS) - Stored in GitHub repository outline/outline prior to 0.70.1. Rated medium severity (CVSS 5.
Cross-site Scripting (XSS) - Stored in GitHub repository outline/outline prior to v0.64.4. Rated medium severity (CVSS 5
Account takeover in Outline collaborative documentation service versions 0.86.0 through 1.5.x enables unauthenticated at
Privilege escalation in Outline (the collaborative wiki/knowledge-base) versions 0.84.0 through 1.6.1 lets a malicious O
An Insecure Direct Object Reference (IDOR) vulnerability in Outline's document restoration logic allows any authenticate
Broken object-level authorization in Outline (self-hosted collaborative documentation) versions 0.84.0 through 1.7.0 let
Cross-workspace document disclosure in Outline (getoutline) versions 0.86.0 through 1.6.x lets an authenticated user min
EUVD-2026-29332
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB