1. Basic Information
- Original Title: Attackers Actively Exploiting Critical Vulnerability in WooCommerce Wholesale Lead Capture Plugin
- Source: Wordfence, BleepingComputer
- Published: 2026-09-14
- Updated: None
- Severity: Critical
- Severity Rationale: Attack attempts targeting an unauthenticated arbitrary file upload vulnerability with a CVSS score of 9.8 have been observed. In environments configured to execute PHP in the upload directory, this leads to code execution and site compromise, but the number of blocked attempts does not equal the number of successful compromises.
- Original Link: Attackers Actively Exploiting Critical Vulnerability in WooCommerce Wholesale Lead Capture Plugin
- Related Source: BleepingComputer: Hackers target WordPress sites via third-party WooCommerce plugin
- Related Entities: PHP web shell, CVE-2026-27540, WooCommerce Wholesale Lead Capture, WordPress
2. Executive Summary
A vulnerability allowing attackers to specify allowed file extensions enables unauthenticated PHP file uploads. Wordfence has blocked over 100,000 exploitation attempts. Updating to version 2.0.3.2 or later and investigating file and execution logs are required.
3. Attack Flow
Flow 1: Observed Request and Web Shell Execution upon Success
- An attacker sends an upload request to
wwlc_file_upload_handlerat/wp-admin/admin-ajax.php. - The
file_settingsparameter in the request includes PHP as an allowed extension. In published request examples, the maximum file size limit was also set to a large value. - The vulnerable processing trusts the settings specified by the attacker, and if other validations pass, the PHP file is saved. Since the implementation appends a timestamp to the saved file name, the destination file cannot be located solely by the file name in the request.
- If the destination is accessible and the environment executes PHP, the attacker can operate the web shell. The published code includes features to display host information and write additional files, but execution results for individual sites have not been published.
4. Attacker Position and Execution Location
- The attacker sends requests over the network without authentication to the WordPress AJAX endpoint.
- Saving the file and executing PHP at the destination are separate stages. If execution succeeds, it runs with the execution privileges of WordPress and the web server.
5. Visibility for Victims and Administrators
Victim
- No action from regular users is required.
- Inference: The attack may not manifest as visible anomalies on the screen.
Administrator
- Inference: If request bodies are captured, POST requests to
admin-ajax.php, the action name, andfile_settingscan be identified. Standard access logs may not retain POST bodies. - Inference: File audits may reveal suspicious PHP files in the upload directory. Newly created administrator accounts are targets for subsequent investigation and are not a confirmed fact across all attempts.
6. Success and Failure Conditions
Success Conditions
- A vulnerable plugin version 2.0.3.1 or earlier is active, and the unauthenticated upload process is reachable.
- The request passes other validations, and the web server successfully writes the file to the upload destination.
- For code execution, requests must reach the saved PHP file, and the environment must execute PHP at that location. File saving alone does not constitute successful code execution.
Failure Conditions
- Updating to version 2.0.3.2 or later fixes this upload vulnerability. Verify separately whether compromises prior to the update have been resolved.
- Inference: Blocking known attack requests using a WAF is a temporary defense. Verify the scope of coverage and block logs; do not use it as a substitute for updating.
- Inference: Disabling PHP execution in the upload directory prevents web shell execution via that path. This is distinct from measures that fix the arbitrary file save vulnerability itself.
7. What Happens Upon Success
- Once the saved PHP file is executed, code execution is established under the web server privileges.
- Those privileges may be used to execute additional malicious code, create administrator accounts, or exfiltrate data.
- The number of blocked events in public information does not indicate the number of successful executions or the ultimate impact.
8. Observable Logs
- Inference: Exploitation of this vulnerability does not require email or user interaction. Email should not be used as a mandatory investigation starting point.
Proxy / SWG / DNS
- Inference: Investigate communications from the suspected web server to unknown download destinations or C2 servers.
Endpoint / EDR
- Inference: Check for newly created PHP files in the upload directory, PHP and web server processes, child processes, and additional files.
Identity / IdP
- Inference: Verify WordPress administrator creation and logins, as well as hosting and FTP authentication in respective audit logs.
SaaS / Cloud
- Inference: Evaluate potential compromise of e-commerce and payment integration API credentials accessible from the site, and review usage logs of connected services.
Network
- Inference: Correlate attack POST requests, responses, and subsequent GET/POST requests to the upload destination. HTTP success codes alone do not confirm PHP execution or data exfiltration.
9. Attack Success Determination
Confirmed in Public Information
- Attack attempts observed (success unconfirmed): Public Information: Wordfence blocked over 100,000 exploitation attempts. While the web shell functionality in the published requests can be analyzed, this block count does not represent successful executions or compromises.
Internal Determination Criteria
- Initial execution confirmed: Criteria: Correlate attack requests, saved PHP files, and execution originating from that PHP file within the same timeline. File creation alone does not meet this stage.
- Malware execution or authentication success confirmed: Criteria: Match requests to the deployed web shell with evidence of execution, such as responses returning host information or writing additional files. Descriptions of published payload features do not constitute confirmation of execution.
- Data exfiltration or session compromise confirmed: Criteria: Substantiate the transmission of file or database contents to an attacker, or the unauthorized use of credentials or sessions. Public information has not confirmed individual data exfiltration contents.
- Subsequent compromise confirmed: Criteria: Confirm additional malicious code execution, operations by unknown administrator accounts, or compromise of other sites using evidence.
10. Investigation Playbook
Trigger
- Inference: Start with the presence of a vulnerable version, suspicious requests to
wwlc_file_upload_handler, or PHP files in the upload directory.
Initial Verification
- Inference: Check plugin versions, WAF and web access logs, request bodies and responses, file creation timestamps, and initial sources.
Endpoints / Servers
- Inference: Preserve differences in upload and public directories, PHP processes, scheduled tasks, administrator accounts, and databases.
Authentication / Cloud
- Inference: Assess the possibility that site credentials were read, and investigate unauthorized use of WordPress, hosting, APIs, and payment integrations.
Subsequent Activity
- Inference: Track web shell operations, additional files, data exfiltration, and modifications to transfer destinations.
Containment
- Inference: Limit attack vectors to preserve evidence, and update to version 2.0.3.2 or later. In case of compromise, recover from a clean state, rotate impacted credentials, and re-investigate lingering backdoors.
Decision Categories
- Inference: Evaluate request blocking, file saving, PHP execution, data exfiltration, and subsequent compromise separately.
11. Defense and Detection Ideas
Single Event
- Inference: Correlate requests to
wwlc_file_upload_handlerwith specifications to allow PHP infile_settings. Also check for new PHP files in the upload directory.
Timeline Correlation
- Inference: Correlate suspicious POST requests, saved files, web shell requests, execution results, additional files, and administrator actions. Account for timestamp additions and renaming of saved files.
Hunting
- Inference: First examine activity periods starting from June 4, and expand the scope to requests, PHP generation, and administrator actions following the disclosure of vulnerability information within log retention periods. Do not limit the search to published source IP addresses or the filename
shell.php.
Log Insufficiency
- Inference: Without POST bodies, responses, file creation, PHP execution, and database audits, it becomes difficult to confirm the progression from request to execution or exfiltration.
Priority Countermeasures
- Inference: Prioritize updating to the patched version, combined with disabling PHP execution in upload directories, deploying a WAF, and implementing file integrity monitoring.
12. Facts / Inference / Hypothesis
Facts
- CVE-2026-27540 is an unauthenticated arbitrary file upload vulnerability in WooCommerce Wholesale Lead Capture version 2.0.3.1 and earlier, with a CVSS score of 9.8. The patched version is 2.0.3.2.
-
wwlc_file_upload_handleris reachable without authentication and accepts allowed extensions fromfile_settingsin the request rather than server-side settings. - Attackers can bypass extension restrictions by including
phpinallowed_file_types. Subsequent upload processing specifiestest_type=false. - Attack requests presented by Wordfence included a PHP file named
shell.php, whose code featured host information display and additional file writing capabilities. This alone does not indicate successful execution on victim sites. - Wordfence blocked over 100,000 exploitation attempts after the vulnerability disclosure on February 20, observing significant activity on June 4-17, July 1, and August 30. The article was published on September 14.
Inferences
- Block counts should not be treated as compromise counts; requests, file saves, PHP execution, and data exfiltration must be judged using separate evidence.
- Since file names and sources can be changed, combining AJAX actions, attacker-specified allowed extensions, and the generation and execution of suspicious PHP files is effective for investigation.
Hypotheses
No additional hypotheses. Unconfirmed items are noted under "Unknowns and Additional Investigation."
13. MITRE ATT&CK Mapping
- T1190 Exploit Public-Facing Application (Confidence: high): Requests targeting flaws in unauthenticated AJAX processing have been observed.
- T1505.003 Server Software Component: Web Shell (Confidence: high): Observed requests include a PHP web shell. This mapping does not indicate successful deployment and execution across all targets.
- T1105 Ingress Tool Transfer (Confidence: high): The published web shell features capabilities to write additional files. This mapping is based on feature analysis.
14. Unknowns and Additional Investigation
- Aside from Wordfence's block count, the number of sites where compromise succeeded across other environments.
- Additional malicious code executed or data exfiltrated.
- Relationships among observed source IPs and attribution.
15. Impact on SOCs and Organizations
Paid e-commerce plugins must also be included in asset inventories and update management. For this vulnerability, it is crucial to verify file saving and PHP execution separately. Even if updated, review pre-update requests, generated PHP files, and subsequent administrator activities; if evidence of compromise is found, proceed with recovery and credential rotation.
16. Summary by Role
- SOC: Correlate AJAX actions, suspicious allowed extensions, PHP generation and execution, and subsequent operations. Distinguish between block counts and success counts.
- Administrators: Update to version 2.0.3.2 or later, and inspect records of requests, files, execution, and accounts. In case of compromise, remove remnants and rotate impacted credentials.
- Users: Report display anomalies or suspicious redirects on e-commerce sites to administrators. User interaction is not required for exploitation.
Top comments (0)