CVE-2026-43890

Outline: IDOR in subscriptions.create allows cross-tenant subscription on private documents (sibling of GHSA-23jj-rp48-w7q7)

Published May 11, 2026 CVSS 3.1 · 7.7 High EPSS < 1% KEV · Not listed
Description
Outline is a service that allows for collaborative documentation. From 0.84.0 to 1.7.0, the subscriptions.create API endpoint in server/routes/api/subscriptions/subscriptions.ts exhibits a broken authorization pattern. When both collectionId and documentId are supplied in the request, the route handler authorizes ONLY the collection branch (line 125 if (collectionId)), while the downstream subscriptionCreator command at server/commands/subscriptionCreator.ts writes the subscription against the documentId (which was never validated). The result is a subscription record pinning the attacker's user to a victim document the attacker has no read access to, on any team in the instance. The schema (server/routes/api/subscriptions/schema.ts) only enforces "at least one of collectionId/documentId" via .refine() — it does NOT enforce mutual exclusivity, so passing both is a valid, schema-conforming request. This vulnerability is fixed in 1.7.1.

Analysis

AI-generated

Technical impact

Outline’s subscriptions.create endpoint suffers a classic IDOR whereby a user can request a subscription to a private document they cannot read. When both collectionId and documentId are supplied, the handler mistakenly authorizes only the collection level, while the downstream command records the subscription directly against the supplied document ID. This allows an attacker to create a subscription to any private document, potentially gaining notification access, co‑listing, and other metadata exposures. The vulnerability is a textbook example of CWE‑639: Authorization Bypass via Privilege Escalation.

Affected Systems

Outline Outline, versions 0.84.0 through 1.7.0 inclusive. Any instance that exposes the subscriptions.create API during that version range is affected. The issue was resolved in version 1.7.1.

Risk and Exploitability

The CVSS score of 7.7 flags this as a high‑severity flaw. The EPSS score is not available and the vulnerability is not listed in CISA KEV, indicating limited public exploitation. An attacker must be authenticated and craft an HTTP POST request to the subscriptions.create endpoint, providing both a collectionId and a documentId that triggers the broken authorization path. The attack requires no additional privileges beyond a legitimate user account and can be performed remotely via the API, making it relatively low effort but with non‑trivial impact in environments with many private documents.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Outline to version 1.7.1 or later to patch the broken authorization check on subscriptions.create.
  • Identify and revoke any subscriptions that were created on private documents without proper read permissions, using the administrative interface or API.
  • Restrict or disable the subscriptions.create endpoint for users who do not have explicit document‑level read access, and audit logs for unexpected subscription creations.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
First Time appeared Getoutline
Getoutline outline
Vendors & Products Getoutline
Getoutline outline
Type Values Removed Values Added
Description Outline is a service that allows for collaborative documentation. From 0.84.0 to 1.7.0, the subscriptions.create API endpoint in server/routes/api/subscriptions/subscriptions.ts exhibits a broken authorization pattern. When both collectionId and documentId are supplied in the request, the route handler authorizes ONLY the collection branch (line 125 if (collectionId)), while the downstream subscriptionCreator command at server/commands/subscriptionCreator.ts writes the subscription against the documentId (which was never validated). The result is a subscription record pinning the attacker's user to a victim document the attacker has no read access to, on any team in the instance. The schema (server/routes/api/subscriptions/schema.ts) only enforces "at least one of collectionId/documentId" via .refine() — it does NOT enforce mutual exclusivity, so passing both is a valid, schema-conforming request. This vulnerability is fixed in 1.7.1.
Title Outline: IDOR in subscriptions.create allows cross-tenant subscription on private documents (sibling of GHSA-23jj-rp48-w7q7)
Weaknesses CWE-639
References
Metrics cvssV3_1

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

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
May 13, 2026, 2:39 PM
Reserved
May 4, 2026, 3:17 PM
Status
Deferred
Published
May 11, 2026, 10:22 PM
Modified
Jun 17, 2026, 10:50 AM