Safeguard
Vulnerability Analysis•

CVE-2026-25875: Admin Access via Forged JWT Claims in PlaciPy

CVE-2026-25875 makes PlaciPy 1.0.0 trust role and scope claims in client JWTs for admin checks (CVSS 9.8). Restrict exposure and check the advisory.

Safeguard Security Team
3 min read

CVE-2026-25875 is an authorization flaw in PlaciPy 1.0.0, rated 9.8. The admin middleware trusts role and scope claims in a client controlled JWT and does not verify the role on the server. The record names no fixed version, so check the advisory.

What's affected

  • Product: PlaciPy, a placement management system for educational institutions.
  • Affected: version 1.0.0.
  • Fixed version: none is stated in the record. Check the GitHub advisory and the project's repository for a patched release.
  • Weakness: admin authorization trusts client controlled JWT role and scope claims.

How to check if you're exposed

PlaciPy is deployed from source, so look at the version in your checkout and at how your deployment is exposed:

git -C /path/to/assessment-placipy describe --tags
grep '"version"' /path/to/assessment-placipy/package.json

If you run 1.0.0, treat the instance as affected. Also check whether it is reachable from the internet and what student data it holds.

What to do now

  1. Read the GitHub advisory and apply the fix or patch it describes, if one has been published.
  2. Do not expose the application to the internet until you have confirmed a fix, or put it behind a VPN or an authenticating proxy.
  3. Rotate the JWT signing secret and invalidate all existing sessions once a fix is in place.
  4. Look up roles on the server, not in the token, if you maintain a fork.
  5. Review access logs for requests you cannot explain, and tell the people responsible for student data if you find any.
  6. Plan for fixes in all the related PlaciPy advisories, since several were reported together.

Why it matters

The record lists CWE-863, incorrect authorization. A JWT is only as trustworthy as its signature check. The record says the middleware relied on claims the client controls, so a caller can claim to be an administrator. Roles belong in server side records that are looked up on each request.

The project is small and the record gives no fixed version, so the practical step is to reduce exposure while you wait. Placement systems hold personal data about students, which raises the stakes of any access control gap. The record does not mark this CVE as exploited in the wild.

Quick check

Are JWT claims safe to trust?

Only after the signature is verified with a secret the client does not know. Even then, sensitive roles are better checked against server state.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.