Severity by source
AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N
AC:H for prerequisite OAuth code acquisition; PR:L for attacker's required Slack account; S:C because the linked Slack identity impacts a component outside the callback; C:H for victim content searchability; I:N and A:N as no modification or disruption occurs.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
3DescriptionGitHub Advisory
Outline is a service that allows for collaborative documentation. Prior to 1.7.1, the Slack integration callback for GET /auth/slack.post accepts an unsigned, session-independent OAuth state value. A third party who can obtain a Slack OAuth code for the same Outline Slack client can make a logged-in Outline user complete the callback and link that user's Outline account to the attacker's Slack team_id and user_id. The linked Slack identity can then use the Slack /outline search command as the victim Outline user. This vulnerability is fixed in 1.7.1.
AnalysisAI
Outline's Slack integration callback endpoint (GET /auth/slack.post) in versions before 1.7.1 accepts an unsigned, session-independent OAuth state parameter, enabling an attacker to hijack the account-linking flow for any logged-in Outline user. By obtaining a valid Slack OAuth authorization code for the same Outline Slack app and delivering a crafted callback URL to a victim, the attacker silently links the victim's Outline account to the attacker's Slack team_id and user_id, granting ongoing ability to query the victim's private Outline content via the Slack /outline search command. SSVC confirms a proof of concept exists; however, EPSS stands at 0.01% and CISA KEV status is absent, indicating exploitation is not yet widespread.
Technical ContextAI
Outline is an open-source collaborative documentation platform that supports Slack OAuth for authentication and workspace integration. RFC 6749 (OAuth 2.0) requires the 'state' parameter to be an opaque, cryptographically unpredictable value bound to the user's session, functioning as a CSRF token to prevent cross-site request forgery during the OAuth handshake. The affected endpoint GET /auth/slack.post omits this validation entirely - the state value is neither signed nor session-tied - making it trivially forgeable. The root cause maps to CWE-352 (Cross-Site Request Forgery) applied to an OAuth callback flow, a variant sometimes called OAuth state parameter injection or CSRF-on-OAuth. Per CPE cpe:2.3:a:outline:outline:*:*:*:*:*:*:*:*, all versions of the Outline application prior to 1.7.1 carry this flaw wherever the Slack integration is configured.
RemediationAI
The vendor-released patch is Outline version 1.7.1, which resolves the vulnerability by binding the OAuth state parameter to the user's session and validating it on callback. Operators should upgrade to 1.7.1 immediately using the standard Outline update process; the advisory at https://github.com/outline/outline/security/advisories/GHSA-mjgw-5j7q-gv8v provides upgrade guidance. If immediate patching is not possible, disabling the Slack integration entirely eliminates the attack surface with no residual risk from this vulnerability - the trade-off is loss of Slack-based authentication and the /outline Slack search command for all users. WAF rules or rate limiting cannot reliably mitigate this flaw because the crafted callback uses legitimately issued OAuth codes and appears as a valid OAuth redirect.
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
Zip extraction sandbox escape in Outline (self-hosted collaborative knowledge base) before 1.7.0 lets an authenticated u
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
Same weakness CWE-352 – Cross-Site Request Forgery (CSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-29343