CVE-2023-25574 is a critical flaw (CVSS 10.0) in jupyterhub-ltiauthenticator 1.3.0. Its LTI13Authenticator did not validate JWT signatures, so a forged request could be accepted. The GitHub advisory lists patched versions as 1.4.0 and later, which removes that class. There is no workaround.
What's affected
The GitHub advisory GHSA-mcgx-2gcr-p3hp lists the pip package jupyterhub-ltiauthenticator, affected version 1.3.0 only, patched in 1.4.0 and above. Only installations that configured JupyterHub to use the LTI13Authenticator class are affected.
The CVE record says version 1.4.0 removes LTI13Authenticator to address the issue, and that no known workarounds exist. The project changelog lists 1.4.0 with a date of 1 March 2023. If you need LTI 1.3 sign in, check the project's newer release notes for how it is supported now.
How to check if you're exposed
List the installed version in the Python environment that runs JupyterHub:
pip show jupyterhub-ltiauthenticator
pip list | grep -i ltiauthenticator
Then look in your jupyterhub_config.py for the authenticator class in use. If it names LTI13Authenticator, and the version is 1.3.0, you are in the affected case. If you use the older LTI11 authenticator, this advisory does not describe your setup.
For container deployments, run the same pip command inside the hub image. A dependency inventory helps here because the package is often pulled in by a base image rather than by your own requirements file. The free dependency scan at gold.safeguard.sh/scan reads a lockfile or manifest in your browser and lists known issues.
What to do now
- Find every JupyterHub deployment that uses jupyterhub-ltiauthenticator, including course and training instances.
- Upgrade to 1.4.0 or newer. Read the release notes if you depend on LTI 1.3 behaviour, since 1.4.0 removes the affected class.
- Rebuild and redeploy hub images so the new version is actually running.
- Review user lists and logs for accounts you do not recognise, because a forged launch can create or access user identities.
- Rotate any tokens or secrets stored on notebook servers that you cannot account for.
Why it matters
The weakness is improper verification of a cryptographic signature (CWE-347). LTI 1.3 launches carry a JSON Web Token that proves the learning platform sent the request. If the server never checks the signature, anyone can write their own token, and the server will believe it. The advisory says this is believed to let a forged request be authorised for existing and new user identities.
The CVSS score is the maximum of 10.0 because the attack needs no login, no user action and low complexity, and because a compromised hub gives access to notebook servers that run user code. Notebook environments often hold data, credentials and cloud access. The CVE is not on the CISA Known Exploited Vulnerabilities list.
Try it yourself
Click through it at your own pace, or open it full screen.
Quick check
Am I affected if I never used LTI sign in?
No. The advisory says only installations configured to use LTI13Authenticator are affected.
Is there a workaround?
No known workaround exists. Upgrade to 1.4.0 or later.
Sources
- GitHub security advisory GHSA-mcgx-2gcr-p3hp
- ltiauthenticator changelog
- Validator source referenced by the CVE
Last reviewed: 19 October 2026.