CVE-2026-46649: Joplin Server: SSO code brute force yields session takeover
CRITICALPoC AVAILABLECISA: ATTENDJoplin Server before 3.7.2 does not apply its brute-force limiter to the SSO login-with-code endpoint, so an unauthenticated attacker can make unlimited guesses at a nine-digit code during its ten-minute lifetime. A correct guess returns a full session token with read and write access to the victim's notes, notebooks, and account settings. Joplin is a general note-taking tool rather than an AI platform, so the AI relevance is indirect: teams often keep prompts, API keys, model credentials, and internal runbooks in notes. Exploitation is plausible, since a public PoC exists and SSVC says ATTEND, but EPSS is low at 0.005 (59th percentile) and it is not in CISA KEV. Upgrade self-hosted Joplin Server to 3.7.2 or later, and review access logs for bursts of requests to /api/login_with_code/ if SSO is enabled.
What is the risk?
Rated critical by the vendor, but real-world risk is moderate. The attack is network-reachable and needs no credentials, but it requires a user to have an SSO login in progress and a guessing window of ten minutes. The code space is 10^9 (nine digits), so success depends on request throughput and any upstream rate limiting. Exposure is limited to internet-reachable Joplin Server instances with SSO enabled. EPSS is low and there is no KEV listing. A public PoC and an SSVC decision of ATTEND justify prompt patching. The AI/ML impact is indirect, through sensitive data stored in notes.
How does the attack unfold?
How severe is it?
What should I do?
5 stepsUpgrade Joplin Server to 3.7.2 or later (fix in PR 15433, commit fd8c1fb).
Until patched, disable SSO login or restrict the server to a VPN or an IP allowlist.
Add rate limiting at the reverse proxy (nginx, Caddy, WAF) for /api/login_with_code/*, for example a few requests per minute per IP.
Monitor logs for many requests to the login_with_code endpoint from one source, or many 4xx responses followed by a 200.
After patching, rotate any API keys, tokens, or credentials stored in notes if suspicious access is found, and invalidate active sessions.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-46649?
Joplin Server before 3.7.2 does not apply its brute-force limiter to the SSO login-with-code endpoint, so an unauthenticated attacker can make unlimited guesses at a nine-digit code during its ten-minute lifetime. A correct guess returns a full session token with read and write access to the victim's notes, notebooks, and account settings. Joplin is a general note-taking tool rather than an AI platform, so the AI relevance is indirect: teams often keep prompts, API keys, model credentials, and internal runbooks in notes. Exploitation is plausible, since a public PoC exists and SSVC says ATTEND, but EPSS is low at 0.005 (59th percentile) and it is not in CISA KEV. Upgrade self-hosted Joplin Server to 3.7.2 or later, and review access logs for bursts of requests to /api/login_with_code/ if SSO is enabled.
Is CVE-2026-46649 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-46649, increasing the risk of exploitation.
How to fix CVE-2026-46649?
1. Upgrade Joplin Server to 3.7.2 or later (fix in PR 15433, commit fd8c1fb). 2. Until patched, disable SSO login or restrict the server to a VPN or an IP allowlist. 3. Add rate limiting at the reverse proxy (nginx, Caddy, WAF) for /api/login_with_code/*, for example a few requests per minute per IP. 4. Monitor logs for many requests to the login_with_code endpoint from one source, or many 4xx responses followed by a 200. 5. After patching, rotate any API keys, tokens, or credentials stored in notes if suspicious access is found, and invalidate active sessions.
What systems are affected by CVE-2026-46649?
This vulnerability affects the following AI/ML architecture patterns: Self-hosted note-taking and knowledge management servers, SSO-integrated internal tooling, Developer and ML team documentation stores.
What is the CVSS score for CVE-2026-46649?
No CVSS score has been assigned yet.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049Exploit Public-Facing ApplicationAML.T0055Unsecured CredentialsAML.T0091.000Application Access TokenCompliance Controls Affected
What are the technical details?
Original Advisory
Joplin is an open source note-taking and to-do application that organises notes and lists into notebooks. Prior to 3.7.2, Joplin Server's GET /api/login_with_code/:id endpoint accepts a nine-digit SSO authentication code with a ten-minute lifetime without applying limiterLoginBruteForce. An unauthenticated attacker who targets a user during an active SSO login can make unlimited guesses, and a correct code returns a full session token that permits access to and modification of the user's notes, notebooks, and account settings. This issue is fixed in version 3.7.2.
Exploitation Scenario
An attacker finds a self-hosted Joplin Server used by an ML team and identifies when a user starts an SSO login, for example by timing or by triggering a login flow and learning the login ID. They script high-volume requests to GET /api/login_with_code/:id with sequential or random nine-digit codes inside the ten-minute window. A correct guess returns a session token. The attacker then reads notes containing LLM API keys, prompt engineering notes, and internal security findings, and may edit notes to plant misleading instructions or links. They then reuse the harvested credentials against cloud AI services.
Weaknesses (CWE)
CWE-307Improper Restriction of Excessive Authentication AttemptsPrimaryCWE-307Improper Restriction of Excessive Authentication AttemptsCWE-307 — Improper Restriction of Excessive Authentication Attempts: The product does not implement sufficient measures to prevent multiple failed authentication attempts within a short time frame.
- [Architecture and Design] Common protection mechanisms include: Disconnecting the user after a small number of failed attempts Implementing a timeout Locking out a targeted account Requiring a computational task on the user's part.
- [Architecture and Design] Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482]. Consider using libraries with authentication capabilities such as OpenSSL or the ESAPI Authenticator. [REF-45]
Source: MITRE CWE corpus.
References
Timeline
Related Vulnerabilities
CVE-2025-512010.0smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Data LeakageCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same attack type: Data LeakageCVE-2025-282810.0LangChain RequestsToolkit: SSRF exposes cloud metadata
Same attack type: Auth BypassCVE-2025-5376710.0Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Auth BypassCVE-2026-2185810.0n8n: Input Validation flaw enables exploitation
Same attack type: Auth Bypass