CVE-2026-25875

9.8 CRITICAL

📋 TL;DR

This vulnerability allows attackers to bypass authorization in PlaciPy placement management systems by manipulating JWT claims. Attackers can escalate privileges to admin level without proper server-side verification. Educational institutions using PlaciPy version 1.0.0 are affected.

💻 Affected Systems

Products:
  • PlaciPy
Versions: 1.0.0
Operating Systems: Any
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of PlaciPy 1.0.0 are vulnerable regardless of configuration. The vulnerability exists in the core authorization middleware.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise where attackers gain full administrative control, potentially accessing sensitive student data, modifying placements, or disrupting educational operations.

🟠

Likely Case

Unauthorized access to administrative functions, allowing attackers to view or modify placement records, user accounts, and system configurations.

🟢

If Mitigated

Proper server-side role verification prevents privilege escalation, limiting users to their assigned permissions only.

🌐 Internet-Facing: HIGH - If the application is exposed to the internet, attackers can remotely exploit this vulnerability without authentication.
🏢 Internal Only: MEDIUM - Internal attackers or compromised accounts could still exploit this to escalate privileges within the system.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires modifying JWT claims (role/scope) which can be done with standard JWT manipulation tools. No authentication needed if JWT can be obtained or forged.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.0.1 or later

Vendor Advisory: https://github.com/Praskla-Technology/assessment-placipy/security/advisories/GHSA-mx95-8ppg-v574

Restart Required: Yes

Instructions:

1. Backup current installation. 2. Update to PlaciPy version 1.0.1 or later. 3. Restart the application server. 4. Verify authorization middleware now performs server-side role verification.

🔧 Temporary Workarounds

Implement server-side JWT validation

all

Add server-side verification of user roles and scopes instead of trusting client-provided JWT claims.

Modify authorization middleware to validate roles against database/user store

Network segmentation

all

Restrict access to PlaciPy administration interfaces to trusted networks only.

Configure firewall rules to limit access to admin endpoints

🧯 If You Can't Patch

  • Implement a reverse proxy or WAF with JWT validation rules to verify claims server-side
  • Disable admin interfaces temporarily and implement manual approval workflows for administrative tasks

🔍 How to Verify

Check if Vulnerable:

Check if PlaciPy version is 1.0.0. Test by modifying JWT role claim to 'admin' and attempting to access admin endpoints without proper server-side verification.

Check Version:

Check package.json or application configuration for version number

Verify Fix Applied:

After patching, attempt the same JWT manipulation test. Access should be denied. Verify authorization middleware code includes server-side role validation.

📡 Detection & Monitoring

Log Indicators:

  • Failed authorization attempts with modified JWT claims
  • Unauthorized access to admin endpoints from non-admin users
  • JWT validation errors

Network Indicators:

  • Unusual access patterns to administrative endpoints
  • Requests with manipulated JWT headers

SIEM Query:

source="placipy" AND (event="authorization_failure" OR event="admin_access" AND user.role!="admin")

🔗 References

📤 Share & Export