CVE-2023-3452
📋 TL;DR
The Canto plugin for WordPress versions up to 3.0.4 contains a Remote File Inclusion vulnerability via the 'wp_abspath' parameter. This allows unauthenticated attackers to execute arbitrary code on the server if allow_url_include is enabled, potentially leading to complete system compromise. All WordPress sites using vulnerable Canto plugin versions are affected.
💻 Affected Systems
- Canto WordPress Plugin
📦 What is this software?
Canto by Canto
⚠️ Risk & Real-World Impact
Worst Case
Complete server takeover with remote code execution, data exfiltration, backdoor installation, and lateral movement within the network.
Likely Case
Website defacement, data theft, malware distribution, or cryptocurrency mining due to the ease of unauthenticated exploitation.
If Mitigated
Limited impact if allow_url_include is disabled, though Local File Inclusion may still be possible with additional requirements.
🎯 Exploit Status
Exploitation is straightforward with publicly available proof-of-concept code. Remote File Inclusion requires specific PHP configuration (allow_url_include enabled).
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.0.5 and later
Vendor Advisory: https://plugins.trac.wordpress.org/changeset/2951888/canto/trunk/includes/lib/tree.php
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Canto plugin and update to version 3.0.5 or later. 4. Alternatively, download latest version from WordPress plugin repository and replace existing files.
🔧 Temporary Workarounds
Disable allow_url_include in PHP
allPrevents remote file inclusion by disabling PHP's ability to include remote files via URL.
Edit php.ini: allow_url_include = Off
Or add to .htaccess: php_flag allow_url_include off
Disable or remove Canto plugin
linuxImmediately removes the vulnerable component while planning permanent fix.
wp plugin deactivate canto
wp plugin delete canto
🧯 If You Can't Patch
- Implement web application firewall (WAF) rules to block requests containing 'wp_abspath' parameter
- Restrict network access to affected systems and implement strict file upload controls
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel → Plugins → Canto version. If version is 3.0.4 or lower, system is vulnerable.
Check Version:
wp plugin list --name=canto --field=version
Verify Fix Applied:
Confirm Canto plugin version is 3.0.5 or higher in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- HTTP requests containing 'wp_abspath' parameter
- Unusual file inclusion attempts in web server logs
- PHP error logs showing include() failures with remote URLs
Network Indicators:
- Outbound connections from web server to unexpected external domains following web requests
- Unusual HTTP POST requests to Canto plugin endpoints
SIEM Query:
source="web_server_logs" AND (uri="*wp_abspath*" OR uri="*/canto/*") AND (status=200 OR status=500)
🔗 References
- https://plugins.trac.wordpress.org/browser/canto/trunk/includes/lib/tree.php?rev=2841358#L5
- https://plugins.trac.wordpress.org/changeset/2951888/canto/trunk/includes/lib/tree.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/a76077c6-700a-4d21-a930-b0d6455d959c?source=cve
- https://plugins.trac.wordpress.org/browser/canto/trunk/includes/lib/tree.php?rev=2841358#L5
- https://plugins.trac.wordpress.org/changeset/2951888/canto/trunk/includes/lib/tree.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/a76077c6-700a-4d21-a930-b0d6455d959c?source=cve