CVE-2024-35351

5.4 MEDIUM

📋 TL;DR

This vulnerability allows attackers to inject malicious scripts via the 'name' parameter in the /classes/SystemSettings.php?f=update_settings endpoint in Diño Physics School Assistant version 2.3. When exploited, this stored cross-site scripting (XSS) vulnerability can execute arbitrary JavaScript in victims' browsers. Users of the affected software version are at risk.

💻 Affected Systems

Products:
  • Diño Physics School Assistant
Versions: 2.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default installation of version 2.3. No special configuration is required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal session cookies, perform actions as authenticated users, deface the application, or redirect users to malicious sites, potentially leading to full account compromise.

🟠

Likely Case

Attackers inject malicious scripts that execute when administrators or users view the affected settings page, potentially stealing session tokens or performing limited unauthorized actions.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts would be neutralized before execution, preventing successful exploitation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires the ability to submit requests to the vulnerable endpoint, which typically requires authentication. The vulnerability is stored XSS, meaning injected scripts persist and affect subsequent users.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: None found

Restart Required: No

Instructions:

No official patch is available. Consider upgrading to a newer version if available, or implement input validation and output encoding in the affected file.

🔧 Temporary Workarounds

Input Validation and Output Encoding

all

Implement proper input validation for the 'name' parameter and encode output to prevent script execution.

Edit /classes/SystemSettings.php to add validation and encoding functions

Web Application Firewall (WAF) Rules

all

Configure WAF to block requests containing suspicious script patterns in the 'name' parameter.

Add WAF rule: Block requests with script tags or JavaScript patterns in parameters

🧯 If You Can't Patch

  • Restrict access to the vulnerable endpoint using network controls or authentication requirements
  • Implement Content Security Policy (CSP) headers to limit script execution

🔍 How to Verify

Check if Vulnerable:

Test by submitting a script payload in the 'name' parameter to /classes/SystemSettings.php?f=update_settings and checking if it executes when the page is viewed.

Check Version:

Check the software version in the application interface or configuration files.

Verify Fix Applied:

After implementing fixes, test with the same payload to ensure scripts are properly sanitized and do not execute.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests to /classes/SystemSettings.php with suspicious 'name' parameter values containing script tags or JavaScript

Network Indicators:

  • Unusual POST requests to the vulnerable endpoint with encoded script payloads

SIEM Query:

source="web_logs" AND uri="/classes/SystemSettings.php" AND (param="name" AND value CONTAINS "<script>" OR "javascript:")

🔗 References

📤 Share & Export