CVE-2023-24114
📋 TL;DR
Typecho 1.1/17.10.30 contains a remote code execution vulnerability in install.php that allows attackers to execute arbitrary code on vulnerable servers. This affects all Typecho installations using these versions, particularly those with the install.php file accessible. Attackers can compromise the entire web server if successful.
💻 Affected Systems
- Typecho
📦 What is this software?
Typecho by Typecho
⚠️ Risk & Real-World Impact
Worst Case
Complete server compromise leading to data theft, malware deployment, lateral movement to other systems, and persistent backdoor installation.
Likely Case
Webshell installation, data exfiltration, defacement, and use of server for cryptocurrency mining or DDoS attacks.
If Mitigated
Limited impact due to proper access controls, network segmentation, and monitoring that detects exploitation attempts.
🎯 Exploit Status
Simple HTTP request exploitation with publicly available proof-of-concept code. No authentication required.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Update to latest Typecho version (beyond 1.1/17.10.30)
Vendor Advisory: https://github.com/typecho/typecho/issues/1523
Restart Required: No
Instructions:
1. Backup your Typecho installation and database. 2. Download the latest Typecho version from the official repository. 3. Replace all files except config.inc.php and uploads directory. 4. Verify the installation works correctly.
🔧 Temporary Workarounds
Remove install.php
linuxDelete or rename the vulnerable install.php file to prevent exploitation
rm /path/to/typecho/install.php
mv /path/to/typecho/install.php /path/to/typecho/install.php.bak
Restrict access via web server
allConfigure web server to block access to install.php
# Apache: Add to .htaccess
<Files "install.php">
Order Allow,Deny
Deny from all
</Files>
# Nginx: Add to server block
location ~ /install\.php$ {
deny all;
return 403;
}
🧯 If You Can't Patch
- Implement strict network access controls to limit who can reach the Typecho installation
- Deploy a web application firewall (WAF) with rules to block requests to install.php and detect RCE attempts
🔍 How to Verify
Check if Vulnerable:
Check if install.php exists in Typecho directory and is accessible via browser or curl: curl -I http://yoursite/install.php
Check Version:
Check admin panel or view /var/Typecho/Common.php version constant
Verify Fix Applied:
Verify install.php returns 403/404 or is not present. Test with: curl http://yoursite/install.php
📡 Detection & Monitoring
Log Indicators:
- HTTP requests to install.php with suspicious parameters
- POST requests to install.php with PHP code patterns
- Unusual file creation in web directories
Network Indicators:
- HTTP traffic to install.php endpoint
- Unusual outbound connections from web server
- Patterns matching known exploit payloads
SIEM Query:
source="web_access.log" AND (uri="/install.php" OR uri LIKE "%/install.php%") AND (method="POST" OR params CONTAINS "php" OR params CONTAINS "system(")