CVE-2021-44427
📋 TL;DR
An unauthenticated SQL injection vulnerability in Rosario Student Information System (rosariosis) allows remote attackers to execute arbitrary PostgreSQL statements through the syear parameter in /Side.php. This affects all systems running rosariosis versions before 8.1.1, potentially compromising student data and system integrity.
💻 Affected Systems
- Rosario Student Information System (rosariosis)
📦 What is this software?
Rosariosis by Rosariosis
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise allowing data theft, data manipulation, privilege escalation, and potential remote code execution via PostgreSQL functions.
Likely Case
Unauthorized access to sensitive student information (grades, personal data), data manipulation, and potential system takeover.
If Mitigated
Limited impact with proper input validation, parameterized queries, and network segmentation in place.
🎯 Exploit Status
The vulnerability is well-documented in public issue trackers with technical details that facilitate exploitation.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 8.1.1 and later
Vendor Advisory: https://gitlab.com/francoisjacquet/rosariosis/-/issues/328
Restart Required: No
Instructions:
1. Backup your database and application files. 2. Download rosariosis 8.1.1 or later from the official repository. 3. Replace the vulnerable files with the patched version. 4. Verify the fix by testing the /Side.php endpoint.
🔧 Temporary Workarounds
Web Application Firewall (WAF) Rules
allImplement WAF rules to block SQL injection patterns in the syear parameter
Input Validation Filter
allAdd server-side validation to restrict syear parameter to expected values
🧯 If You Can't Patch
- Implement network segmentation to restrict access to the rosariosis application
- Deploy a web application firewall with SQL injection protection rules
🔍 How to Verify
Check if Vulnerable:
Check if your rosariosis version is below 8.1.1 by examining the version file or admin panel
Check Version:
Check the version.php file or login to the admin panel to view system information
Verify Fix Applied:
Test the /Side.php endpoint with SQL injection payloads in the syear parameter to confirm they are rejected
📡 Detection & Monitoring
Log Indicators:
- Unusual database queries from web server logs
- Multiple failed login attempts following SQL injection patterns
- Unexpected database errors in application logs
Network Indicators:
- HTTP requests to /Side.php with suspicious syear parameter values
- Unusual database connection patterns from web server
SIEM Query:
source="web_server" AND uri="/Side.php" AND (syear="*' OR*" OR syear="*;*" OR syear="*--*" OR syear="*UNION*" OR syear="*SELECT*" OR syear="*INSERT*" OR syear="*UPDATE*" OR syear="*DELETE*")