{"schemaVersion":3,"id":"CVE-2026-104801","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"The PPOM – Product Addons & Custom Fields for WooCommerce plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the rename_files function in all versions up to, and including, 34.0.10 This makes it possible for unauthenticated attackers to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). The relocated file is moved byte-identically into the publicly accessible wp-content/uploads/ppom_files/confirmed/ directory, meaning the attack also results in arbitrary file read for any web-readable file on the server.","dates":{"published":"2026-10-10T06:40:11.824Z","modified":"2026-10-11T16:55:16.598Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":9.1,"severity":"critical","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":9.1,"severity":"critical","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":9.1,"severity":"critical","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"wordfence","score":9.1,"severity":"critical","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00755,"percentile":0.54363,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-10-10T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00755,"percentile":0.54363}],"last30":[{"date":"2026-10-10T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00755,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00755,"percentile":0.54363}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"}],"affected":[{"vendor":"themeisle","product":"ppom – product addons & custom fields for woocommerce","name":"PPOM – Product Addons & Custom Fields for WooCommerce","label":"ppom – product addons & custom fields for woocommerce","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 34.0.10","noFixRecorded":false,"fixedIn":null}],"versionsText":"≤ 34.0.10","eol":null,"hubHref":"/vendor/themeisle/ppom_-_product_addons__custom_fields_for_woocommerce"},{"vendor":"wordpress","product":"woocommerce-product-addon","name":"PPOM – Product Addons & Custom Fields for WooCommerce","label":"woocommerce-product-addon","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 34.0.10 (fixed in 34.0.11)","noFixRecorded":false,"fixedIn":"34.0.11"}],"versionsText":"≤ 34.0.10 (fixed in 34.0.11)","eol":null,"hubHref":null}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/650b510f-dc13-4ba4-af68-187f516b3051?source=cve","label":"www.wordfence.com/threat-intel/vulnerabilities/id/650b510f-dc13-4ba4-af68-187f516b3051?source=cve","hostname":"www.wordfence.com","tags":[]},{"url":"https://plugins.trac.wordpress.org/browser/woocommerce-product-addon/tags/34.0.10/src/WooCommerce/Order/OrderHandler.php#L287","label":"plugins.trac.wordpress.org/browser/…","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://plugins.trac.wordpress.org/browser/woocommerce-product-addon/tags/34.0.10/src/WooCommerce/Cart/CartHandler.php#L369","label":"plugins.trac.wordpress.org/browser/…","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://plugins.trac.wordpress.org/browser/woocommerce-product-addon/tags/34.0.10/src/Support/Helpers.php#L224","label":"plugins.trac.wordpress.org/browser/woocommerce-product-addon/tags/34.0.10/src/Support/Helpers.php","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://plugins.trac.wordpress.org/browser/woocommerce-product-addon/tags/34.0.10/src/Files/Handler.php#L738","label":"plugins.trac.wordpress.org/browser/woocommerce-product-addon/tags/34.0.10/src/Files/Handler.php","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://plugins.trac.wordpress.org/changeset/3733313/woocommerce-product-addon/trunk/src/WooCommerce/Order/OrderHandler.php","label":"plugins.trac.wordpress.org/changeset/…","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/650b510f-dc13-4ba4-af68-187f516b3051","label":"www.wordfence.com/threat-intel/vulnerabilities/id/650b510f-dc13-4ba4-af68-187f516b3051","hostname":"www.wordfence.com","tags":["Vendor Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-10-10T06:40:11.824Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-11T16:55:16.598Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":70,"level":"high","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T11:21:28.922Z","stale":false,"partial":false}}