CVE-2025-3849

4.3 MEDIUM

📋 TL;DR

This vulnerability allows remote attackers to change student passwords without proper verification in the SpringBoot-Vue-OnlineExam system. By manipulating the studentId parameter in the /api/studentPWD endpoint, attackers can modify passwords for arbitrary student accounts. This affects all deployments of version 1.0 of the SpringBoot-Vue-OnlineExam software.

💻 Affected Systems

Products:
  • YXJ2018 SpringBoot-Vue-OnlineExam
Versions: 1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all deployments with the vulnerable /api/studentPWD endpoint accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could change passwords for all student accounts, causing widespread account lockouts, exam disruption, and potential unauthorized access to student data and exam submissions.

🟠

Likely Case

Targeted password changes for specific students, leading to account takeover, exam manipulation, and potential grade tampering.

🟢

If Mitigated

With proper authentication and authorization controls, impact would be limited to authorized users only making legitimate password changes.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit details are publicly disclosed in GitHub issue #74, making this easily exploitable by attackers with basic web application knowledge.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: None available

Restart Required: No

Instructions:

1. Check the GitHub repository for any security patches or updates. 2. If no official patch exists, implement proper authentication and authorization checks in the /api/studentPWD endpoint. 3. Validate that only authenticated users can change their own passwords or that administrators follow proper verification procedures.

🔧 Temporary Workarounds

Web Application Firewall Rule

all

Block or monitor requests to the vulnerable /api/studentPWD endpoint

WAF specific - configure rule to block POST requests to /api/studentPWD with suspicious parameters

Network Access Control

all

Restrict access to the application to trusted networks only

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="TRUSTED_NETWORK" port port="APP_PORT" protocol="tcp" accept'
netsh advfirewall firewall add rule name="Restrict OnlineExam" dir=in action=allow protocol=TCP localport=APP_PORT remoteip=TRUSTED_NETWORK

🧯 If You Can't Patch

  • Implement strong authentication and session management to prevent unauthorized access to password change functionality
  • Deploy a web application firewall with rules specifically targeting the /api/studentPWD endpoint

🔍 How to Verify

Check if Vulnerable:

Test if you can change a student password via POST request to /api/studentPWD without proper authentication or by manipulating the studentId parameter

Check Version:

Check application version in package.json or build configuration files

Verify Fix Applied:

Verify that password changes now require proper authentication and that users can only change their own passwords or that administrators follow verification procedures

📡 Detection & Monitoring

Log Indicators:

  • Multiple POST requests to /api/studentPWD from single IP
  • Password change requests with different studentId values from same source
  • Failed login attempts followed by password reset requests

Network Indicators:

  • Unusual traffic patterns to /api/studentPWD endpoint
  • POST requests to /api/studentPWD with manipulated studentId parameters

SIEM Query:

source="web_server" AND (url="/api/studentPWD" AND method="POST") | stats count by src_ip, studentId

🔗 References

📤 Share & Export