Skip to main content

Outline EUVDEUVD-2026-115209

| CVE-2026-120449 MEDIUM
Operation on a Resource after Expiration or Release (CWE-672)
2026-11-02 VulnCheck GHSA-4q4r-qmm8-wr2p
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain existing public share link
  2. Delivery
    Owner unpublishes the shared document
  3. Exploit
    Query shares.info / documents.info / /s/ route unauthenticated
  4. Execution
    Read full withdrawn document content
  5. Impact
    Owner/admin revoke attempt fails (persistent disclosure)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Operation on resource after expiration or release
Exploitation Conditions

Exploitation requires that an attacker already holds a valid public share URL (share ID) for a document that was previously published and shared, and that the document has since been unpublished via documents.unpublish - the share loader in shareLoader.ts uses the Document 'withDrafts' scope and never checks publishedAt IS NOT NULL, so the withdrawn document keeps serving. There is NO authentication, cookie, CSRF token, or user interaction required to read the content (PR:N/UI:N confirmed by the vector and by Bob's anonymous requests in the PoC). The limiting factors are significant: the attacker cannot discover or enumerate unpublished documents without an existing link, and only document shares are confirmed affected (collection shares untested). A compounding condition, not a precondition, is that while the document is unpublished shares.revoke returns 404 for both owner and workspace administrator, so the disclosure cannot be closed except by re-publishing then revoking, or by direct database modification. Fixed configurations are any deployment on Outline 1.12.0 or later.

Impact

This is a real but bounded confidentiality issue rather than a high-urgency emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N) describes a network-reachable, low-complexity, unauthenticated read with LOW confidentiality impact and no integrity or availability impact, scoring 6.9 (Medium). The vuln.today priority is 'this_month', not act_now or emergency, which aligns with the Medium severity and the limited, per-link scope. There is no CISA KEV listing and no EPSS score in the provided data, so there is no evidence of active or widespread exploitation - exploitation status is therefore 'no public exploit identified at time of analysis' in the sense of a packaged weaponized exploit, though the VulnCheck/GHSA advisory itself publishes a complete step-by-step reproduction procedure (a public PoC reference exists; it is not verified as standalone working exploit code). The key limiting factor, explicitly stated in the advisory, is that an attacker must already possess a valid public share URL - the flaw does not permit discovery or enumeration of unpublished documents without a link. The practical priority is driven less by exploitation probability and more by the broken-revocation aspect: owners and administrators cannot withdraw exposed content through normal means, turning an accidental over-share into a persistent unauthenticated disclosure. Missing signals: EPSS and KEV are absent (not errors, just not provided), so likelihood is assessed from mechanism rather than observed telemetry.

Exploit ScenarioDerived

An Outline user publishes a document, shares it via a public link, then later unpublishes it believing the link is now dead. An attacker (or anyone) who retained that share URL continues to fetch the full withdrawn content unauthenticated via shares.info, documents.info, or the /s/ routes, while the owner's and administrator's attempts to revoke the link fail with 404. The GHSA advisory includes a full reproduction PoC, but exploitation still requires prior possession of the specific share URL.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 02, 2026

Improper access control in Outline before 1.12.0 leaves previously shared documents readable by unauthenticated users after the owner withdraws them: the public share loader in server/commands/shareLoader.ts retrieves the document through the 'withDrafts' scope and never enforces publishedAt IS NOT NULL, so an existing share link keeps serving the full text. Anyone holding the share URL can pull the withdrawn content through POST /api/shares.info, POST /api/documents.info with shareId, GET /s/<share-id> and GET /s/<share-id>.md without authentication, and while the document stays unpublished the shares.revoke endpoint returns 404 for both the share owner and workspace administrators, so the exposure cannot be closed through the normal UI. The vendor advisory includes a detailed public proof-of-concept walkthrough (not verified working exploit code); the issue was reported by VulnCheck and is fixed in 1.12.0 (commit d015a32459b5f5c5a8ef67aeb81742eeab430c52).

RemediationAI

Upgrade Outline to 1.12.0 or later (https://github.com/outline/outline/releases/tag/v1.12.0), which contains commit d015a32459b5f5c5a8ef67aeb81742eeab430c52 ('fix: Share state handling for unpublished documents', PR #14160); the patch makes documents.unpublish automatically set published: false on every active share for that document and rewrites shares.revoke to resolve the share through the withCollectionPermissions scope so drafts can be revoked. Because the vulnerable code paths are still live on older deployments, the vendor-documented in-product recovery for an already-affected share is to re-publish the document, revoke its share while it is published, and then unpublish it again - re-publishing briefly restores public access to the content, so treat that window as an additional exposure - or, as the reporter notes, to modify the database directly to mark the share unpublished/revoked. Note that shares.revoke returns 404 for both the owner and workspace administrators while the document is unpublished, so administrators who rely on revocation alone will believe the link is closed when it is not; verify by requesting /s/<share-id> anonymously after any revocation attempt. Beyond upgrading, the only verified way to eliminate the leak is to invalidate the share state itself; the advisory publication and version release are the authoritative references (https://github.com/outline/outline/security/advisories/GHSA-rq53-m97j-f2pg).

Affected VersionsENISA

outline 0 <1.12.0

Affected Packages

euvd outline fix: 1.12.0

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 team knowledge base backed by PostgreSQL through the Sequelize ORM, and the flaw is rooted in how Sequelize scopes are composed rather than in a missing permission check on a route. The Document model defines a default scope that restricts results to published rows (publishedAt IS NOT NULL), plus an explicit 'withDrafts' scope used for editor-side access. shareLoader.ts opts into 'withDrafts' when loading the share's associated document, and its guard clauses only reject suspended teams and archived documents/collections - there is no corresponding check for a null publishedAt - so withdrawing a document with documents.unpublish has no effect on its already-issued public share. The revocation path fails for the mirror-image reason: shares.revoke uses Share.findByPk under the Share model's default scope, which joins the document through the document's default (published-only) scope, so share.document resolves to null after unpublishing; because a document share has no collection association either, the existence guard throws NotFoundError before authorization or revocation code runs. CWE-672 (operation on a resource after expiration or release) captures the core failure, with CWE-200 and CWE-285 as related classification. The fix commits to two changes: unpublishing a document now marks all of its published, non-revoked shares as published: false within the same transaction, and shares.revoke now loads the share via the withCollectionPermissions scope, which already loads the document with 'withDrafts' so drafts can be revoked. The assessed vector (AV:N/AC:L/PR:N/UI:N/C:L) reflects that the attacker needs a pre-existing share identifier - there is no enumeration or discovery primitive - and only document shares are confirmed affected; collection shares were not tested in the report.

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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Unauthenticated network read (AV:N/PR:N/UI:N), low complexity once the share link is held; discloses one document's content so C:L, with no integrity or availability impact and no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Outline before 1.12.0 contains an improper access control vulnerability that allows unauthenticated users to read unpublished documents because the share loader ignores unpublished status. Attackers holding an existing share link can query shares.info, documents.info, or the /s/ share routes to read withdrawn content, while shares.revoke returns 404 and blocks revocation.

Threat Intelligence Overview

EPSS Score
0.4%
Top 61% exploitable
Prevalence
Medium
popular open-source self-hosted team wiki, moderate real-world adoption
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2024-37829 HIGH POC
8.8 Jul 09

An issue in Outline <= v0.76.1 allows attackers to execute a session hijacking attack via user interaction with a crafte

CVE-2023-54331 HIGH POC
7.8 Jan 13

Outline versions up to - contains a vulnerability that allows attackers to potentially execute arbitrary code with eleva

CVE-2024-37830 MEDIUM POC
6.1 Jul 09

An issue in Outline <= v0.76.1 allows attackers to redirect a victim user to a malicious site via intercepting and chang

CVE-2026-25062 MEDIUM POC
5.5 Feb 11

Outline versions prior to 1.4.0 fail to validate attachment file paths during JSON import, allowing authenticated attack

CVE-2024-40626 MEDIUM POC
5.4 Jul 16

Outline is an open source, collaborative document editor. Rated medium severity (CVSS 5.4), this vulnerability is remote

CVE-2023-3532 MEDIUM POC
5.4 Jul 07

Cross-site Scripting (XSS) - Stored in GitHub repository outline/outline prior to 0.70.1. Rated medium severity (CVSS 5.

CVE-2022-2342 MEDIUM POC
5.4 Jul 07

Cross-site Scripting (XSS) - Stored in GitHub repository outline/outline prior to v0.64.4. Rated medium severity (CVSS 5

CVE-2026-33640 CRITICAL
9.1 Mar 26

Account takeover in Outline collaborative documentation service versions 0.86.0 through 1.5.x enables unauthenticated at

CVE-2026-43888 HIGH
8.7 May 11

Zip extraction sandbox escape in Outline (self-hosted collaborative knowledge base) before 1.7.0 lets an authenticated u

CVE-2026-43886 HIGH
8.2 May 11

Privilege escalation in Outline (the collaborative wiki/knowledge-base) versions 0.84.0 through 1.6.1 lets a malicious O

CVE-2026-24901 HIGH
8.1 Mar 17

An Insecure Direct Object Reference (IDOR) vulnerability in Outline's document restoration logic allows any authenticate

CVE-2026-43890 HIGH
7.7 May 11

Broken object-level authorization in Outline (self-hosted collaborative documentation) versions 0.84.0 through 1.7.0 let

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy