Unauthenticated Remote Code Execution in Pix for WooCommerce
A critical vulnerability (CVE-2026-3891) in the Pix for WooCommerce WordPress plugin allows unauthenticated attackers to upload and execute arbitrary PHP files via vulnerable AJAX handlers.
CVE-2026-3891 is a critical vulnerability affecting the Pix for WooCommerce WordPress plugin in versions up to and including 1.5.0. The vulnerability stems from two AJAX actions, lkn_pix_for_woocommerce_generate_nonce and lkn_pix_for_woocommerce_c6_save_settings, which lack proper authentication and authorization checks. An unauthenticated attacker can first request a valid security nonce from the public-facing admin-ajax.php endpoint and subsequently use that nonce to trigger the c6_save_settings action.
This second action improperly handles file uploads by failing to validate the file type or verify user permissions, permitting the upload of arbitrary PHP files into a publicly accessible directory. The files are stored in wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/, where they can be executed directly by the web server. Successful exploitation grants the attacker remote code execution with the privileges of the web server user, potentially leading to full site takeover, data exfiltration, and establishment of persistent backdoors.
Attack Chain
- The attacker performs an unauthenticated POST request to
wp-admin/admin-ajax.phpwith the actionlkn_pix_for_woocommerce_generate_nonceandaction_name=lkn_pix_for_woocommerce_c6_settings_nonce. - The server returns a valid security nonce in the JSON response.
- The attacker crafts a multipart POST request to
wp-admin/admin-ajax.phpusing the actionlkn_pix_for_woocommerce_c6_save_settings. - The request includes the previously acquired nonce and an arbitrary file (e.g.,
shell.php) in thecertificate_crt_pathparameter. - The plugin saves the malicious file to
wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/. - The attacker navigates their browser to the direct URL of the uploaded file to trigger execution.
- The server executes the PHP payload, providing the attacker with remote command execution capabilities.
Impact
Successful exploitation results in full Remote Code Execution (RCE) on the WordPress server. Attackers can leverage this access to steal sensitive configuration data such as wp-config.php, compromise database credentials, exfiltrate customer information, modify system files to plant backdoors, or gain administrative access to the WordPress site. The vulnerability affects all users running Pix for WooCommerce versions 1.5.0 and earlier.
Recommendation
- Immediately update Pix for WooCommerce to a version later than 1.5.0 that includes the patch for CVE-2026-3891.
- If an update is not immediately available, configure the web server to deny PHP execution within the
certs_c6directory using.htaccessor server configuration blocks. - Implement a WAF rule to block requests to
admin-ajax.phpcontaining thelkn_pix_for_woocommerce_c6_save_settingsaction if initiated by unauthorized sources. - Audit the
certs_c6directory for any unexpected PHP files and remove them immediately. - Deploy the provided Sigma rule to detect suspicious AJAX requests and potential webshell uploads.
Immediate actions
Deploy Sigma detection rule for AJAX actions
Threat Hunt
Search logs for POST /wp-admin/admin-ajax.php with specified plugin actions
Data: webserver_logs
Mitigations
Update Pix for WooCommerce plugin
CVE-2026-3891
Detection coverage 1
Detect CVE-2026-3891 Exploitation Attempt
criticalDetects exploitation attempts against Pix for WooCommerce by monitoring for specific AJAX actions used in the unauthenticated file upload chain.
Detection queries are available on the platform. Get full rules →