CVE-2024-7226

4.3 MEDIUM

📋 TL;DR

This CSRF vulnerability in SourceCodester Medicine Tracker System 1.0 allows attackers to trick authenticated users into performing unauthorized password changes. Attackers can exploit this remotely by crafting malicious requests. Only systems running the vulnerable version are affected.

💻 Affected Systems

Products:
  • SourceCodester Medicine Tracker System
Versions: 1.0
Operating Systems: Any
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the password change functionality specifically at /classes/Users.php?f=save_user

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could change administrator passwords, gaining full system control and potentially locking legitimate users out.

🟠

Likely Case

Attackers trick users into changing their own passwords to attacker-controlled values, enabling account takeover.

🟢

If Mitigated

With proper CSRF protections, the vulnerability is neutralized and no impact occurs.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit requires user interaction but is simple to execute with published proof-of-concept

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: None known

Restart Required: No

Instructions:

No official patch available. Consider implementing CSRF tokens in /classes/Users.php or using alternative mitigation strategies.

🔧 Temporary Workarounds

Implement CSRF Protection

all

Add CSRF tokens to password change forms and validate them server-side

Manual code modification required

Use SameSite Cookies

all

Set SameSite=Strict attribute on session cookies to prevent CSRF

Set-Cookie: session=value; SameSite=Strict; Secure; HttpOnly

🧯 If You Can't Patch

  • Implement WAF rules to block CSRF attempts targeting /classes/Users.php
  • Require re-authentication for password changes

🔍 How to Verify

Check if Vulnerable:

Check if /classes/Users.php?f=save_user endpoint lacks CSRF token validation

Check Version:

Check application version in admin panel or configuration files

Verify Fix Applied:

Verify CSRF tokens are required and validated for password change requests

📡 Detection & Monitoring

Log Indicators:

  • Multiple password change requests from same IP with different user agents
  • Password changes without corresponding form submissions

Network Indicators:

  • POST requests to /classes/Users.php?f=save_user without Referer headers or CSRF tokens

SIEM Query:

source="web_logs" AND uri="/classes/Users.php" AND param="f=save_user" AND NOT header="X-CSRF-Token:*"

🔗 References

📤 Share & Export