CVE-2023-53889

7.2 HIGH

📋 TL;DR

CVE-2023-53889 is a remote code execution vulnerability in Perch CMS 3.2 that allows authenticated administrators to upload malicious PHP files through the assets interface. Attackers can execute arbitrary system commands on the server by uploading .phar files with embedded command execution capabilities. This affects all Perch CMS 3.2 installations with administrator accounts.

💻 Affected Systems

Products:
  • Perch CMS
Versions: 3.2
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated administrator access to exploit. All installations of Perch CMS 3.2 are vulnerable by default.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise allowing attackers to execute arbitrary commands, steal data, install backdoors, pivot to other systems, and maintain persistent access.

🟠

Likely Case

Attackers with administrator credentials upload web shells to gain remote command execution, potentially leading to data theft, defacement, or further network compromise.

🟢

If Mitigated

With proper file upload restrictions and admin account security, impact is limited to authenticated administrators who would already have significant system access.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit requires administrator credentials. Public exploit code is available on Exploit-DB and other sources.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.2.1

Vendor Advisory: https://grabaperch.com/

Restart Required: No

Instructions:

1. Backup your Perch CMS installation and database. 2. Download Perch CMS 3.2.1 from the official website. 3. Replace all files with the patched version. 4. Verify the update was successful by checking the version in the admin panel.

🔧 Temporary Workarounds

Restrict PHP file uploads

all

Configure web server to block .phar and .php file uploads through the assets interface

# For Apache: Add to .htaccess
<FilesMatch "\.(phar|php)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>
# For Nginx: Add to server config
location ~ \.(phar|php)$ {
    deny all;
}

Implement file type validation

all

Add server-side validation to reject .phar and .php files in upload functionality

🧯 If You Can't Patch

  • Implement strict access controls for administrator accounts with strong passwords and MFA
  • Deploy a web application firewall (WAF) with rules to block .phar file uploads and suspicious PHP execution patterns

🔍 How to Verify

Check if Vulnerable:

Check if running Perch CMS version 3.2 by examining the version in admin panel or checking the perch/core/version.php file

Check Version:

grep -r "PERCH_VERSION" perch/core/version.php

Verify Fix Applied:

Verify version is 3.2.1 or higher in admin panel or version.php file. Test that .phar files cannot be uploaded through assets interface.

📡 Detection & Monitoring

Log Indicators:

  • Unusual .phar or .php file uploads in web server logs
  • Multiple failed upload attempts followed by successful .phar upload
  • POST requests to assets upload endpoints with PHP content

Network Indicators:

  • HTTP POST requests with .phar file uploads to assets endpoints
  • Subsequent requests to uploaded .phar files with command parameters

SIEM Query:

source="web_server" (uri_path="*/assets/*" AND file_extension="phar") OR (uri_path="*.phar" AND method="POST")

🔗 References

📤 Share & Export