Green Hat Security Advisory · GH-ADV-2026-005

GHSA-m2h8-g6cf-42g7

Private draft disclosure through Outline document relationships

Outline's relationship lookup could expose another user's unfiled draft to an authenticated workspace user. Anthony Green reported the issue; the public advisory lists 1.10.0 as fixed and has no public CVE ID yet.

Medium · CVSS 6.5PatchedPublishedCVE not yet published

CVE assignment and research role

CVE ID not yet published. This public advisory is tracked as GHSA-m2h8-g6cf-42g7. Green Hat Security's role is Researcher.

Summary

Outline's relationship lookup could expose another user's unfiled draft to an authenticated workspace user. Anthony Green reported the issue; the public advisory lists 1.10.0 as fixed and has no public CVE ID yet.

Vulnerability Classification

Vulnerability type

Broken Access Control / Information Disclosure

Weakness

CWE-862 / CWE-863

Affected component

relationships.list and Document.findByIds

CVSS 3.1

6.5 · Medium

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Security Impact

A read-only viewer could receive a linked draft's full body despite being denied direct access. The exposure depends on an existing document relationship; the report does not establish access to every draft or to other workspaces.

Affected Products

Outline — affected versions: Earlier than 1.10.0.

Component: relationships.list and Document.findByIds

Fixed version: 1.10.0 or later

Technical Details

The lookup's access filter treated a missing collection as though it were a non-private collection. The published fix handles that state explicitly: document or group membership can grant access, otherwise a document without a visible collection is restricted to its creator. The accompanying tests cover another user's draft, the creator's own draft, and an explicitly shared draft.

This public record provides enough information to identify the vulnerability and its root cause without unnecessarily publishing weaponized exploit material.

Defensive lesson

A relationship grants a way to find an object, not permission to read it. Apply the same read policy to each returned object, and make missing-parent states explicit in authorization decisions.

How We Investigated

  1. 1. Compare routes that return the same object

    The report compared documents.info with relationships.list for the same caller and draft: the direct route denied access while the relationship route returned content. Using one identity and one object makes the authorization disagreement easier to isolate.

  2. 2. Retest the returned objects after a partial fix

    Testing the release and a newer development build showed that authorizing the anchor document did not protect every related draft. A regression check should inspect the response contents, not stop at the request's status code.

  3. 3. Keep legitimate access in the regression cases

    The final patch tests three outcomes: withhold an unrelated author's unfiled draft, allow the creator to read their own draft, and preserve explicit sharing. Negative and positive cases together make an access-control fix safer to maintain.

Attack Requirements

  • An authenticated non-guest workspace account; a read-only viewer was sufficient in the reported tests.
  • A document relationship linking to an unfiled draft. Anonymous access was denied.

Remediation

Fixed version: 1.10.0 or later

Guidance: Upgrade Outline to 1.10.0 or later.

  • Use synthetic drafts to compare direct reads with relationship lookups under the same account.
  • Include unfiled drafts, private collections, explicit sharing, and the author's own drafts in access-control regression tests.

Disclosure Timeline

  1. Research report dated

    The report included in Outline's advisory is dated July 26.

  2. Fixed release published

    Outline released 1.10.0, the version later identified as patched in the maintainer advisory.

  3. Maintainer advisory published

    Outline published the advisory with a fix in 1.10.0 and credited Antnation as reporter.

CVE assignment remains unconfirmed in the public advisory as of October 24, 2026. This summary uses the published report and patch; it is not a fresh test of the fixed release.

Researcher Credit

  • Anthony Green [antnation] — Green Hat Security

Coordination and CVE Attribution

Anthony Green of GreenHat Security reported the finding to Outline. Outline published the advisory and remediation. GreenHat is the credited research organization, not an assigning CNA.

A CVE ID and assigning CNA have not been confirmed in the public advisory.

CVE assignment remains unconfirmed in the public advisory as of October 24, 2026. This summary uses the published report and patch; it is not a fresh test of the fixed release.

References