CVE-2021-41644

9.8 CRITICAL

📋 TL;DR

This vulnerability allows attackers to upload malicious PHP files disguised as images to the Online Food Ordering System, bypassing file upload filters. Successful exploitation enables remote code execution on the web server. Any organization using Sourcecodester Online Food Ordering System 2.0 is affected.

💻 Affected Systems

Products:
  • Sourcecodester Online Food Ordering System
Versions: Version 2.0
Operating Systems: Any OS running PHP web server
Default Config Vulnerable: ⚠️ Yes
Notes: Requires file upload functionality to be accessible, typically through admin or user interfaces.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise allowing attackers to execute arbitrary commands, steal data, install backdoors, or pivot to internal networks.

🟠

Likely Case

Webshell deployment leading to data theft, defacement, or cryptocurrency mining malware installation.

🟢

If Mitigated

Limited impact with proper file upload restrictions and web application firewalls blocking malicious uploads.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: CONFIRMED
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploit requires authentication to access upload functionality. Multiple public exploits exist demonstrating the bypass technique.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch exists. Consider upgrading to a newer version if available, or implement workarounds.

🔧 Temporary Workarounds

Restrict file upload extensions

all

Modify upload validation to strictly allow only image extensions (jpg, png, gif) and reject PHP files regardless of content.

Modify PHP upload validation code to check both file extension and MIME type

Web server file execution prevention

all

Configure web server to prevent execution of uploaded files in upload directories.

Apache: Add 'php_flag engine off' to .htaccess in upload directory
Nginx: location ~* \.php$ { deny all; } in upload directory

🧯 If You Can't Patch

  • Disable file upload functionality completely if not essential
  • Implement Web Application Firewall (WAF) rules to block PHP file uploads and suspicious POST requests

🔍 How to Verify

Check if Vulnerable:

Attempt to upload a PHP file with image extension (e.g., shell.php.jpg) through the system's upload interface.

Check Version:

Check system documentation or admin panel for version information

Verify Fix Applied:

Test that PHP files cannot be uploaded regardless of extension, and uploaded files cannot be executed as PHP.

📡 Detection & Monitoring

Log Indicators:

  • File uploads with PHP content but image extensions
  • POST requests to upload endpoints with suspicious filenames
  • Web server errors from attempted PHP execution in upload directories

Network Indicators:

  • HTTP POST requests with multipart/form-data containing PHP code
  • Unusual outbound connections from web server after file upload

SIEM Query:

source="web_server" (method="POST" AND uri="*upload*" AND (filename="*.php*" OR content_type="application/x-php"))

🔗 References

📤 Share & Export