CVE-2026-86049: CWE-532: Insertion of Sensitive Information into Log File in jupyter-server jupyter_server
### Summary When a request returns a 500, `jupyter_server/log.py` logs a small JSON block of request headers. The Referer header was copied into it as-is, so a token in the Referer URL ended up in the logs in plain text. ### Impact Anyone who can read the server logs can pick tokens out of these 500 entries. Tokens end up in the Referer during normal token-based login and launch flows. Affected: all versions before 2.21.0. ### PoC Any malformed request that returns a 500 works: ```bash curl -i -X POST \ -H 'Content-Type: application/json' \ -H 'Referer: http://127.0.0.1:8899/tree?token=REFERTOKEN' \ --data '{"name":123}' \ 'http://127.0.0.1:8899/api/kernels?token=VALIDTOKEN' ``` The log shows the token twice, once raw and once redacted: ``` "Referer": "http://127.0.0.1:8899/tree?token=REFERTOKEN", [E ... ServerApp] 500 POST /api/kernels?token=[secret] (...) referer=http://127.0.0.1:8899/tree?token=[secret] ``` ### Patches Fixed in 2.21.0 by 5251352. Header values are now scrubbed before the block is logged. Upgrade to 2.21.0 or later. ### Workarounds Limit who can read the server logs. If you can, avoid flows that put the token in the URL.
AI Analysis
Technical Summary
Jupyter Server's logging mechanism for 5xx HTTP errors prior to version 2.21.0 improperly logs the Referer header without applying token scrubbing. If the Referer header contains a token-bearing URL, this token is recorded in plaintext in server logs. This exposure allows an attacker who can read the logs to recover authentication tokens and gain the same permissions as the affected user. The vulnerability is identified as CWE-532 (Insertion of Sensitive Information into Log File) and has a CVSS 3.1 score of 7.1, indicating high severity. The issue is fixed in version 2.21.0.
Potential Impact
Sensitive authentication tokens can be exposed in server logs when a 500 error occurs and the Referer header contains token-bearing URLs. This exposure can lead to unauthorized access by attackers who obtain these logs, potentially compromising user permissions and data confidentiality, integrity, and availability.
Mitigation Recommendations
Upgrade Jupyter Server to version 2.21.0 or later, where this logging issue has been fixed. No additional mitigation is required once the update is applied.
CVE-2026-86049: CWE-532: Insertion of Sensitive Information into Log File in jupyter-server jupyter_server
Description
### Summary When a request returns a 500, `jupyter_server/log.py` logs a small JSON block of request headers. The Referer header was copied into it as-is, so a token in the Referer URL ended up in the logs in plain text. ### Impact Anyone who can read the server logs can pick tokens out of these 500 entries. Tokens end up in the Referer during normal token-based login and launch flows. Affected: all versions before 2.21.0. ### PoC Any malformed request that returns a 500 works: ```bash curl -i -X POST \ -H 'Content-Type: application/json' \ -H 'Referer: http://127.0.0.1:8899/tree?token=REFERTOKEN' \ --data '{"name":123}' \ 'http://127.0.0.1:8899/api/kernels?token=VALIDTOKEN' ``` The log shows the token twice, once raw and once redacted: ``` "Referer": "http://127.0.0.1:8899/tree?token=REFERTOKEN", [E ... ServerApp] 500 POST /api/kernels?token=[secret] (...) referer=http://127.0.0.1:8899/tree?token=[secret] ``` ### Patches Fixed in 2.21.0 by 5251352. Header values are now scrubbed before the block is logged. Upgrade to 2.21.0 or later. ### Workarounds Limit who can read the server logs. If you can, avoid flows that put the token in the URL.
CVSS v3.1
Score 7.1high
Affected software
jupyter-server
jupyter_server
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Jupyter Server's logging mechanism for 5xx HTTP errors prior to version 2.21.0 improperly logs the Referer header without applying token scrubbing. If the Referer header contains a token-bearing URL, this token is recorded in plaintext in server logs. This exposure allows an attacker who can read the logs to recover authentication tokens and gain the same permissions as the affected user. The vulnerability is identified as CWE-532 (Insertion of Sensitive Information into Log File) and has a CVSS 3.1 score of 7.1, indicating high severity. The issue is fixed in version 2.21.0.
Potential Impact
Sensitive authentication tokens can be exposed in server logs when a 500 error occurs and the Referer header contains token-bearing URLs. This exposure can lead to unauthorized access by attackers who obtain these logs, potentially compromising user permissions and data confidentiality, integrity, and availability.
Mitigation Recommendations
Upgrade Jupyter Server to version 2.21.0 or later, where this logging issue has been fixed. No additional mitigation is required once the update is applied.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-09-04T19:29:21.058Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6aac51e955bf5e2cf5e0db76
Added to database: 09/17/2026, 20:47:37 UTC
Last enriched: 09/17/2026, 21:02:27 UTC
Last updated: 09/18/2026, 02:19:59 UTC
Views: 10
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.