CVE-2021-44093
📋 TL;DR
CVE-2021-44093 is a critical remote command execution vulnerability in zrlog 2.2.2 that allows attackers to bypass file upload restrictions and upload malicious JSP files to gain web shell access. This affects all users running the vulnerable version of zrlog blogging software. Attackers can execute arbitrary commands on the server with the privileges of the web application.
💻 Affected Systems
- zrlog
📦 What is this software?
Zrlog by Zrlog
⚠️ Risk & Real-World Impact
Worst Case
Complete server compromise allowing attackers to execute arbitrary commands, steal data, install malware, pivot to internal networks, and maintain persistent access.
Likely Case
Attackers upload web shells to gain remote command execution, potentially defacing websites, stealing sensitive data, or using the server for further attacks.
If Mitigated
With proper file upload validation and web application firewalls, exploitation attempts would be blocked, limiting impact to failed attack attempts.
🎯 Exploit Status
Exploitation requires authentication to access the avatar upload function. Public proof-of-concept demonstrates the bypass technique.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Versions after 2.2.2
Vendor Advisory: https://github.com/94fzb/zrlog/issues/115
Restart Required: Yes
Instructions:
1. Backup your zrlog installation and database. 2. Download the latest version of zrlog from the official repository. 3. Replace the vulnerable files with patched versions. 4. Restart the web server service. 5. Verify the fix by checking the version.
🔧 Temporary Workarounds
Disable avatar upload functionality
allTemporarily disable the vulnerable avatar upload feature until patching can be completed.
Modify zrlog configuration to remove avatar upload options or restrict access to the upload endpoint
Implement file upload restrictions
allConfigure web server or application to block JSP file uploads and enforce strict file type validation.
Add web server rules to block .jsp file uploads at the reverse proxy or application firewall level
🧯 If You Can't Patch
- Implement strict network segmentation to isolate the vulnerable system from critical assets
- Deploy a web application firewall (WAF) with rules to detect and block file upload bypass attempts
🔍 How to Verify
Check if Vulnerable:
Check if running zrlog version 2.2.2 by examining the application version in admin panel or checking installed files.
Check Version:
Check zrlog admin dashboard or examine the application's version file if accessible.
Verify Fix Applied:
Verify the version is updated beyond 2.2.2 and test the avatar upload function with JSP files to ensure they are properly rejected.
📡 Detection & Monitoring
Log Indicators:
- Unusual file uploads to avatar endpoint
- JSP file upload attempts
- Multiple failed upload attempts followed by successful upload
Network Indicators:
- POST requests to upload endpoints with JSP file extensions
- Unusual outbound connections from web server
SIEM Query:
source="web_server" AND (url_path="/upload/avatar" OR file_extension=".jsp") AND status="200"