Description
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.
Published: 2026-05-11
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Outline’s ZipHelper.extract function computed extraction paths by concatenating a full filesystem path with the entry name and then passing the result through trimFileAndExt. When the joined path exceeded the 4096‑byte MAX_PATH_LENGTH, trimFileAndExt inadvertently dropped the directory components and returned only the basename. Subsequent fs.createWriteStream calls therefore created files relative to the process working directory instead of within the intended extraction sandbox. As the cleanup routine removed only the temporary extraction directory, these out‑of‑sandbox files persisted. The flaw permits an attacker who can supply a malicious zip file during collection import to write arbitrary files on the server, potentially including executable scripts, which could lead to remote code execution. The weakness corresponds to CWE‑22, a path traversal vulnerability.

Affected Systems

The issue is present in the Outline collaborative documentation platform, specifically in all releases prior to 1.7.0. Any deployment that accepts ZIP imports—typically used for document synchronization across teams—is vulnerable until the code is updated or otherwise mitigated.

Risk and Exploitability

The CVSS score of 8.7 marks the flaw as high‑severity, and the EPSS score is not available. The vulnerability is not listed in the CISA KEV catalog. The likely attack vector is the upload of a malicious ZIP file to the import endpoint; based on the description, this upload probably requires a user who has import privileges, though the exact authentication requirements are not explicitly documented, so this inference is made. If an attacker can reach the import service, no host‑wide administrative privileges are necessary, since the vulnerability writes files outside the intended sandbox. The combination of a high CVSS score, lack of mitigation controls, and the relative ease of triggering the path truncation suggests a significant risk of exploitation.

Generated by OpenCVE AI on May 12, 2026 at 00:08 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Outline to version 1.7.0 or later to apply the developer‑provided fix.
  • Restrict the collection import endpoint so that only trusted administrators can upload ZIP files; enforce least privilege and monitor access logs for abnormal activity.
  • If a patch cannot be applied immediately, run Outline in a restricted container or chroot environment with write permissions limited to a dedicated pod space, and implement a file‑system watcher to detect and alert on unauthorized file creations beyond the intended sandbox.

Generated by OpenCVE AI on May 12, 2026 at 00:08 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 12 May 2026 13:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 12 May 2026 09:15:00 +0000

Type Values Removed Values Added
First Time appeared Getoutline
Getoutline outline
Vendors & Products Getoutline
Getoutline outline

Mon, 11 May 2026 22:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Outline: Zip Extraction Path Escape via PATH_MAX Truncation in Collection Import
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 8.7, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:H/A:H'}


Subscriptions

Getoutline Outline
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-05-12T12:53:57.532Z

Reserved: 2026-05-04T15:17:09.330Z

Link: CVE-2026-43888

cve-icon Vulnrichment

Updated: 2026-05-12T12:53:48.194Z

cve-icon NVD

Status : Deferred

Published: 2026-05-11T22:22:13.627

Modified: 2026-05-12T14:50:18.527

Link: CVE-2026-43888

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-12T09:00:06Z

Weaknesses