chore(deps): update dependency jupyter-server to v2.20.0 [security] - #7
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency jupyter-server to v2.20.0 [security]#7renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/pypi-jupyter-server-vulnerability
branch
from
May 7, 2026 16:45
9891ed0 to
57c8e33
Compare
renovate
Bot
force-pushed
the
renovate/pypi-jupyter-server-vulnerability
branch
from
June 20, 2026 19:46
57c8e33 to
8c72b22
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==2.9.1→==2.20.0jupyter-server errors include tracebacks with path information
CVE-2023-49080 / GHSA-h56g-gq9v-vc8r
More information
Details
Impact
Unhandled errors in API requests include traceback information, which can include path information. There is no known mechanism by which to trigger these errors without authentication, so the paths revealed are not considered particularly sensitive, given that the requesting user has arbitrary execution permissions already in the same environment.
Patches
jupyter-server PATCHED_VERSION no longer includes traceback information in JSON error responses. For compatibility, the traceback field is present, but always empty.
Workarounds
None
Severity
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Jupyter Server has an open redirection vulnerability in
nextquery parameterCVE-2025-61669 / GHSA-qh7q-6qm3-653w
More information
Details
Summary
The
?next=...URL query parameter has an open redirection vulnerability. Injupyter_server<=2.17.0, this URL query parameter allows redirection to arbitrary external domains, which can be exploited to facilitate phishing attacks on server users.Details
The vulnerability is caused by insufficient validation in the
LoginFormHandler._redirect_safe()method.This vulnerability was originally reported by Noriaki Iwasaki. All discovery credit goes to them.
PoC
http://localhost:8888/login?next=///google.comgoogle.comdespite it being an external domain.The external domain passed in the
?nextparameter may be replaced with a malicious lookalike to facilitate phishing attacks. Jupyter Server deployments served on a public domain are especially vulnerable, asprod.company.commay be redirected to a look-alike URL such asprod.company.dev.Impact
This vulnerability affects all users, especially enterprise users who work with sensitive/confidential data.
Patches
Jupyter Server 2.18+
Workaround
None.
Severity
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Jupyter Server: Path Traversal via incorrect startswith() root directory check allows access to sibling directories
CVE-2026-35397 / GHSA-5789-5fc7-67v3
More information
Details
Summary
Jupyter Server <=2.17.0 can access directories sibling to the root directory, if it starts with the root dir's name.
PoC
Minimal:
Full PoC by @stef41: https://gist.github.com/Yann-P/66d4982a965dee8fcb8dd89db29e7006
Impact
It is possible for an authenticated user to access content outside the server's
root_dirin siblings directories sharing the same prefix as theroot_dir. The attacker can escalate access, reading, writing, and deleting from sibling directories.This can have a tangible impact for deployments using predictable naming scheme with multi-tenant server, for example
user1,user2,user3, ...,user10etc, asuser1could access and modify files of alluser10-user19and higher.In a hypothetical system where users can choose a name of their folder, an attacker could choose a single-letter username to gain access to a significant number of sibling directories.
Workarounds
Use folder names that do not overlap.
Acknowledgments
Thank you to @stef41 for providing a useful PoC.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Jupyter Server has a CORS Origin Validation Bypass via
re.match()inallow_origin_patCVE-2026-40110 / GHSA-24qx-w28j-9m6p
More information
Details
Jupyter Server uses
re.match()to validate the Origin header against theallow_origin_patconfiguration.Since
re.match()only anchors at the start of the string, an attacker who controls a domain likehttp://trusted.example.com.evil.com/passes validation against a pattern intended to match onlytrusted.example.com.Impact
<=2.17.0
Patches
057869a327c46730afede3eab0ca2d2e3e74acea, 49b34392feaa97735b3b777e3baf8f22f2a14ed8
Workarounds
Wrap your
allow_origin_patvalue with^and$References
https://github.com/jupyter-server/jupyter_server/pull/603
https://docs.python.org/3/library/re.html#re.fullmatch
https://docs.python.org/3/library/re.html#re.match
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:L/SC:L/SI:L/SA:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Jupyter Server's Authentication Cookies Remain Valid After Password Reset and Server Restart
CVE-2026-40934 / GHSA-5mrq-x3x5-8v8f
More information
Details
Summary
A persistent cookie secret vulnerability allows authenticated users to maintain indefinite access even after password changes.
The cookie secret used to sign authentication cookies is stored in a permanent file (
~/.local/share/jupyter/runtime/jupyter_cookie_secret) that is never automatically rotated or cleared, allowing stolen or compromised cookies to remain valid indefinitely regardless of password resets.PoC
jupyter server password,jupyter serverjupyter server passwordImpact
Patches
Jupyter Server 2.18+
Workaround
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Jupyter Server: Stored XSS in
NbconvertFileHandler/NbconvertPostHandlervia missingsandboxCSPCVE-2026-44727 / GHSA-fcw5-x6j4-ccmp
More information
Details
The nbconvert HTTP handlers in jupyter_server render user-authored notebook HTML under the Jupyter origin without a sandbox directive in their
Content-Security-Policy.Combined with
nbconvert.HTMLExporter's default non-sanitizing behavior, a notebook carrying an HTML payload in a display_data output triggers stored XSS with cookie access, full /api/* authority, and kernel RCE.Impact
An authenticated victim who navigates to
/nbconvert/html/<path>containing attacker-authored output can have their token exfiltrated to another domain because it is executed in the Jupyter origin.Patches
Fixed in v2.20.0, commit 6cbee8d
Workarounds
For deployments where editing the installed jupyter_server is impractical (containerized builds, read-only images), adding this to jupyter_server_config.py has the same effect as the patch above without touching source files:
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
jupyter-server/jupyter_server (jupyter-server)
v2.20.0Compare Source
(Full Changelog)
Enhancements made
Bugs fixed
bind_socketsin case its different #1651 (@choldgraf, @krassowski)Maintenance and upkeep improvements
test_authorizerhaving a spurious comma in params #1664 (@krassowski)pywinpty3.0.4 version #1658 (@krassowski)Documentation improvements
Contributors to this release
The following people contributed discussions, new ideas, code and documentation contributions, and review.
See our definition of contributors.
(GitHub contributors page for this release)
@Carreau (activity) | @choldgraf (activity) | @Copilot (activity) | @ianthomas23 (activity) | @krassowski (activity) | @minrk (activity) | @Yann-P (activity)
v2.19.0Compare Source
(Full Changelog)
Enhancements made
unresolvedstanza when kernel scope is unavailable forresolvePath(instead of failing with 404) #1641 (@MUFFANUJ, @Carreau, @krassowski)Bugs fixed
Maintenance and upkeep improvements
Other merged PRs
Contributors to this release
The following people contributed discussions, new ideas, code and documentation contributions, and review.
See our definition of contributors.
(GitHub contributors page for this release)
@Carreau (activity) | @ianthomas23 (activity) | @krassowski (activity) | @minrk (activity) | @MUFFANUJ (activity) | @terminalchai (activity) | @Zsailer (activity)
v2.18.2Compare Source
(Full Changelog)
Bugs fixed
root_diris a filesystem root #1636 (@Yann-P, @krassowski)Maintenance and upkeep improvements
Contributors to this release
The following people contributed discussions, new ideas, code and documentation contributions, and review.
See our definition of contributors.
(GitHub contributors page for this release)
@brichet (activity) | @Carreau (activity) | @krassowski (activity) | @Yann-P (activity)
v2.18.1Compare Source
(Full Changelog)
Bugs fixed
kernel_inforequests #1632 (@krassowski, @Copilot, @jtpio, @tonyx93)Contributors to this release
The following people contributed discussions, new ideas, code and documentation contributions, and review.
See our definition of contributors.
(GitHub contributors page for this release)
@Copilot (activity) | @jtpio (activity) | @krassowski (activity) | @tonyx93 (activity)
v2.18.0Compare Source
(Full Changelog)
API and Breaking Changes
Enhancements made
_get_os_pathin_dir_model#1547 (@joeyutong, @vidartf)Bugs fixed
Maintenance and upkeep improvements
test_execution_statetest #1579 (@krassowski, @Zsailer)hatch fmtandpre-commit#1576 (@krassowski, @Zsailer)@flaky.flakydecorate with pytest marker #1544 (@mgorny, @minrk)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.