CVE-2021-26739
📋 TL;DR
This SQL injection vulnerability in millken doyocms 2.3 allows attackers to execute arbitrary SQL commands via the attribute parameter in pay.php. Attackers can potentially read, modify, or delete database content, and in worst cases execute arbitrary code on the server. All installations of doyocms 2.3 using the vulnerable pay.php component are affected.
💻 Affected Systems
- millken doyocms
📦 What is this software?
Doyocms by Doyocms Project
⚠️ Risk & Real-World Impact
Worst Case
Complete system compromise including remote code execution, database exfiltration, and persistent backdoor installation
Likely Case
Database manipulation, sensitive data theft, and potential privilege escalation
If Mitigated
Limited impact with proper input validation and database permissions
🎯 Exploit Status
Simple SQL injection with publicly available details in GitHub issues
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: https://github.com/millken/doyocms/issues/5
Restart Required: No
Instructions:
No official patch available. Consider migrating to alternative CMS or implementing custom fixes.
🔧 Temporary Workarounds
Input Validation Filter
allAdd parameter validation to pay.php to sanitize attribute parameter
Edit pay.php and add input validation before SQL query execution
WAF Rule Implementation
allDeploy web application firewall rules to block SQL injection patterns
Configure WAF to block requests containing SQL keywords in attribute parameter
🧯 If You Can't Patch
- Disable or remove pay.php if not required
- Implement network segmentation and restrict access to vulnerable endpoint
🔍 How to Verify
Check if Vulnerable:
Check if pay.php exists and is accessible, test with SQL injection payloads in attribute parameter
Check Version:
Check CMS version in configuration files or admin panel
Verify Fix Applied:
Test with SQL injection payloads after implementing fixes, verify no database errors or unexpected behavior
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL errors in web server logs
- Multiple requests to pay.php with SQL keywords in parameters
Network Indicators:
- HTTP requests to pay.php containing SQL injection patterns in attribute parameter
SIEM Query:
source="web_server" AND (uri="*/pay.php" AND (param="*attribute*" AND value="*SELECT*" OR value="*UNION*" OR value="*OR*"))