CVE-2026-4001
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedThe Woocommerce Custom Product Addons Pro plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 5.4.1 via the custom pricing formula eval() in the process_custom_formula() function within includes/process/price.php. This is due to insufficient sanitization and validation of user-submitted field values before passing them to PHP's eval() function. The sanitize_values() method strips HTML tags but does not escape single quotes or prevent PHP code injection. This makes it possible for unauthenticated attackers to execute arbitrary code on the server by submitting a crafted value to a WCPA text field configured with custom pricing formula (pricingType: "custom" with {this.value}).
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceThe WooCommerce Custom Product Addons Pro plugin up to 5.4.1 contains an unauthenticated RCE vulnerability where the process_custom_formula() function in includes/process/price.php passes user-submitted field values directly to PHP's eval() function. The sanitize_values() method strips HTML tags but fails to escape single quotes or prevent PHP code injection, allowing attackers to execute arbitrary code by submitting crafted values to WCPA text fields configured with custom pricing formulas (pricingType: 'custom' with {this.value}).
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Verify plugin is installedCheck your WordPress site's wp-content/plugins/ directory for the 'custom-product-addons-pro' folder, or list active plugins via WordPress admin or database query on wp_options table for option_name like 'active_plugins'Affected if The custom-product-addons-pro plugin folder exists in the plugins directory or is listed in active plugins
-
Check installed versionRead the main plugin file header in wp-content/plugins/custom-product-addons-pro/custom-product-addons-pro.php to find the 'Version:' tag, or query the wp_options table for option_name 'wcpa_version'Affected if The version number is 5.4.1 or lower (any version up to and including 5.4.1)
-
Identify fields using custom pricing formulasQuery the WordPress database for any product or form fields where pricingType is set to 'custom'. Check WCPA form field configurations in wp_postmeta where meta_key contains 'pricing_type' or 'pricing' and meta_value contains 'custom', or inspect the plugin's field configuration filesAffected if Any WCPA field has pricingType set to 'custom' with {this.value} or similar dynamic value reference in the pricing formula
-
Verify the vulnerable code existsInspect the file includes/process/price.php in the plugin directory for the process_custom_formula() function and check if it calls eval() on user-submitted values, or check if sanitize_values() is the only sanitization applied before eval()Affected if The process_custom_formula() function uses eval() on field values without proper escaping of single quotes or prevention of PHP code injection
You are affected if the plugin is installed with version 5.4.1 or lower AND any WCPA form field is configured with pricingType set to 'custom' using dynamic values in the formula.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpdate to a patched version immediately. If no update is available, disable the custom pricing formula feature (pricingType: 'custom') or remove the plugin entirely. Consider restricting access to the affected endpoint at the web server level as an interim measure.
Latest version of Woocommerce Custom Product Addons Pro (newer than 5.4.1)
- Check the currently installed version of the Woocommerce Custom Product Addons Pro plugin in WordPress admin under Plugins > Installed Plugins
- Navigate to Plugins > Add New > Upload Plugin if an update is available, or check the plugin developer's website (acowebs.com) for the latest version
- Update to the latest version of Woocommerce Custom Product Addons Pro that is newer than 5.4.1
- Verify the update was successful and test that custom pricing formulas still function correctly
- Monitor vendor security advisories for any further updates
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation2.0 h
- Implementation1.0 h
- Testing2.0 h
- Review / QA1.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $1,696.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-4001 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-4001 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data