Summary
CVE-2026-18080 is a critical unrestricted file upload vulnerability (CWE-434) in the WeDevs "ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce" WordPress plugin. The flaw resides in the CRM Email Connect IMAP feature’s save_attachments() function and allows an unauthenticated attacker to write a malicious PHP file to a publicly accessible directory, potentially leading to remote code execution. It carries a CVSS v3.1 base score of 9.8 (Critical).
Technical details
- Root cause:
save_attachments(), used by the CRM module’s IMAP Email Connect sync job, fails to validate file extensions and does not normalize file paths for inbound email attachments. - Trigger conditions: The CRM module must be enabled with IMAP Email Connect configured. An attacker sends a crafted email with a forged References header and an attachment named with a directory-traversal payload (e.g.
../helper.php). - Attack vector: Network, no authentication or user interaction required (AV:N/AC:L/PR:N/UI:N). When the plugin’s IMAP sync job processes the malicious attachment, the traversal sequence causes it to be written into
wp-content/uploads/instead of the intended, protectedcrm-attachmentsdirectory. - Impact: On servers configured to execute PHP files placed in the uploads directory, this results in remote code execution, with full compromise of confidentiality, integrity, and availability of the affected WordPress site.
Affected software
- WeDevs ERP WordPress plugin ("ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce"), versions up to and including 1.17.8.
Severity
- CVSS v3.1 Base Score: 9.8 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: Update the WeDevs ERP plugin to the latest version available from the WordPress Plugin Directory; confirm with the vendor’s changelog that a release beyond 1.17.8 addresses this issue before relying on it as a fix.
- If no patch is confirmed available: Disable the CRM module’s IMAP Email Connect feature until a fixed version is confirmed and installed. Ensure the web server is configured to deny PHP execution within
wp-content/uploads/, and monitor that directory for unexpected.phpfiles.

