CVE-2023-38884

7.5 HIGH

📋 TL;DR

An unauthenticated attacker can access any student's files by manipulating the URL path in openSIS Classic Community Edition. This affects all installations of version 9.0 that expose the student files directory without proper access controls.

💻 Affected Systems

Products:
  • openSIS Classic Community Edition
Versions: Version 9.0
Operating Systems: All platforms running openSIS
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all default installations of version 9.0. The vulnerability exists in the file serving mechanism for student assets.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Mass exfiltration of sensitive student documents including academic records, personal information, and confidential files leading to data breach and privacy violations.

🟠

Likely Case

Targeted access to specific student files for harassment, blackmail, or identity theft purposes.

🟢

If Mitigated

Limited impact with proper network segmentation and access controls preventing external access to the vulnerable endpoint.

🌐 Internet-Facing: HIGH - Unauthenticated remote exploitation allows direct access from the internet without any credentials.
🏢 Internal Only: MEDIUM - Internal attackers could still access unauthorized student files but would need network access.

🎯 Exploit Status

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

Simple URL manipulation required. No authentication or special tools needed. Public proof-of-concept demonstrates the vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not specified

Vendor Advisory: https://www.os4ed.com/

Restart Required: No

Instructions:

1. Check vendor website for security updates
2. Upgrade to patched version when available
3. Apply workarounds immediately

🔧 Temporary Workarounds

Web Server Access Restriction

all

Block direct access to /assets/studentfiles/ directory at web server level

# Apache: <Location /assets/studentfiles/>
#   Order deny,allow
#   Deny from all
# </Location>
# Nginx: location /assets/studentfiles/ {
#   deny all;
# }

Authentication Middleware

all

Implement authentication check before serving student files

# Add authentication validation in file serving logic
# Verify user has permission to access requested studentId

🧯 If You Can't Patch

  • Implement network-level access controls to restrict /assets/studentfiles/ endpoint to authorized users only
  • Move student files to a secure storage location with proper access controls and authentication

🔍 How to Verify

Check if Vulnerable:

Attempt to access /assets/studentfiles/1-test.pdf (replace with known student ID and filename) without authentication. If file downloads, system is vulnerable.

Check Version:

Check openSIS version in admin panel or application configuration files

Verify Fix Applied:

Attempt the same access after applying controls. Should receive 403 Forbidden or redirect to login.

📡 Detection & Monitoring

Log Indicators:

  • Multiple 200 OK responses to /assets/studentfiles/ from unauthenticated IPs
  • Pattern of sequential student ID access attempts

Network Indicators:

  • Unusual volume of requests to student files endpoint
  • Requests with manipulated student IDs in URL parameters

SIEM Query:

source="web_server" AND (url="/assets/studentfiles/*" OR url CONTAINS "studentfiles") AND status=200 AND NOT (user!="-" OR auth_success=true)

🔗 References

📤 Share & Export