Skip to content
Threat Feed
critical advisory

Checkout Files Upload for WooCommerce: Unauthenticated Remote Code Execution (CVE-2026-103688)

An unauthenticated file upload vulnerability in the Checkout Files Upload for WooCommerce plugin allows remote attackers to execute arbitrary PHP code due to improper file type validation and exposed AJAX handlers.

CVE search metadata

CVE search record: CVE-2026-103688. Severity: critical. CVSS: 9.8. EPSS: 0.61%. KEV: no. Product: Checkout Files Upload for WooCommerce (< 2.4.0). Brief: Checkout Files Upload for WooCommerce: Unauthenticated Remote Code Execution (CVE-2026-103688). Brief link: https://feed.craftedsignal.io/briefs/2026-10-checkout-files-upload-rce/

Triage facts

Revision 1
Applicability
Checkout Files Upload for WooCommerce (< 2.4.0)
Evidence
Unknown
Severity
Critical
Action
Immediate escalation
Sources
3 public sources
Freshness
Revision 1Oct 31, 00:04 UTC
Detection
1 rule
Vulnerabilities
1 CVE
Source quality
B2Very likely

The Checkout Files Upload for WooCommerce plugin (prior to version 2.4.0) contains an unauthenticated file upload vulnerability tracked as CVE-2026-103688. The vulnerability arises because the plugin fails to enforce file type validation if the "Accepted file types" setting is left blank. The AJAX action alg_ajax_file_upload is accessible to unauthenticated users via the wp_ajax_nopriv_ hook, and the required nonce is exposed to all visitors on the checkout page. Exploitation results in the ability to upload executable PHP files to a public web directory, facilitating remote code execution.

Attack Chain

  1. An attacker identifies a WordPress site running the Checkout Files Upload plugin with an empty "Accepted file types" configuration.
  2. The attacker visits the checkout page to retrieve a valid nonce for the wpwham-checkout-files-upload-0 action.
  3. The attacker submits a multipart/form-data request to /wp-admin/admin-ajax.php containing the nonce, file_uploader identifier, and a malicious PHP file.
  4. The plugin stores the malicious file in a temporary location and moves it to wp-content/uploads/woocommerce_uploads/alg_uploads/checkout_files_upload/ upon order creation or submission.
  5. The attacker requests the uploaded PHP file directly via the web server to execute arbitrary code with the privileges of the web service user.

Impact

Successful exploitation allows unauthenticated attackers to execute arbitrary PHP code on the server, leading to full site compromise, data exfiltration, and potential lateral movement within the hosting environment.

Recommendation

  • Update the "Checkout Files Upload for WooCommerce" plugin to version 2.4.0 or later immediately.
  • If immediate patching is not possible, configure an explicit "Accepted file types" allow-list (e.g., jpg,jpeg,png,pdf) for every uploader instance in the plugin settings.
  • Block direct PHP execution in the uploads directory by adding the following directive to your web server configuration (Nginx or Apache) to prevent webshell execution.
  • Audit the wp-content/uploads/woocommerce_uploads/alg_uploads/checkout_files_upload/ directory for any unexpected files.

Immediate actions

Patch Checkout Files Upload for WooCommerce to version 2.4.0

IT Operations 24h

Threat Hunt

Search web server logs for PHP files accessed in the uploads directory

T1505.003 high high confidence hunt now

Data: webserver access logs

Mitigations

Configure explicit file extension allow-list in plugin settings

immediate IT Operations

CVE-2026-103688

Detection coverage 1

Detect CVE-2026-103688 Exploitation - Unauthenticated AJAX File Upload

critical

Detects unauthenticated POST requests to the plugin AJAX endpoint which may indicate an attempt to upload malicious files.

sigma tactics: initial_access techniques: T1190 sources: webserver

Detection queries are available on the platform. Get full rules →