{"id":"CVE-2026-120560","title":"Active Woot Products Tables for WooCommerce. 100% FREE <= 2.1.5 - Unauthenticated File Deletion via 'wp_columns_actions' and 'table_id' Parameters","summary":"The Active Woot Products Tables for WooCommerce. 100% FREE plugin for WordPress is vulnerable to Media Library File Deletion in all versions up to, and including, 2.1.5 This is due to the `get_table_data()` AJAX handler — registered for …","severity":"medium","cvss":6.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L","cvssSource":"cna","cwe":["CWE-22"],"vendor":"realmag777","product":"Active Woot Products Tables for WooCommerce. 100% FREE","affected":["active_woot_products_tables_for_woocommerce._100_free <= 2.1.5"],"published":"2026-11-07","updated":"2026-11-07","sourceUpdated":"2026-11-07T03:28:05.878Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-120560","references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/a4962c61-9059-4fb9-9ddf-5e6aa1d2675a?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/profit-products-tables-for-woocommerce/trunk/index.php#L1206"},{"url":"https://plugins.trac.wordpress.org/browser/profit-products-tables-for-woocommerce/trunk/index.php#L1094"},{"url":"https://plugins.trac.wordpress.org/browser/profit-products-tables-for-woocommerce/trunk/index.php#L1090"},{"url":"https://plugins.trac.wordpress.org/browser/profit-products-tables-for-woocommerce/trunk/index.php#L91"},{"url":"https://plugins.svn.wordpress.org/profit-products-tables-for-woocommerce/trunk/index.php"},{"url":"https://plugins.trac.wordpress.org/changeset/3784667/profit-products-tables-for-woocommerce/trunk/index.php"}],"tags":["cve.org"],"ingestedAt":"2026-11-07T04:09:29.801Z","epss":0.00414,"epssPercentile":0.35949,"slug":"CVE-2026-120560","body":"## Overview\n\nThe Active Woot Products Tables for WooCommerce. 100% FREE plugin for WordPress is vulnerable to Media Library File Deletion in all versions up to, and including, 2.1.5 This is due to the `get_table_data()` AJAX handler — registered for unauthenticated access via `wp_ajax_nopriv_woot_get_table_data` — performing no nonce verification and no capability check before passing the attacker-supplied `wp_columns_actions` parameter directly to `apply_filters()` alongside an attacker-controlled integer derived from the `table_id` parameter. This makes it possible for unauthenticated attackers to delete any WordPress media library attachment and its underlying file in the uploads directory by supplying a known or guessed numeric attachment ID, enabling complete erasure of a site's media library. Exploitation is achievable because WordPress core registers `wp_delete_attachment()` as a callback on hooks such as `upgrader_scheduled_cleanup` and `importer_scheduled_cleanup`, which `sanitize_key()` does not strip; notably, only attachment posts reachable by numeric ID are affected, and files outside `wp-content/uploads` — such as `wp-config.php` or plugin PHP files — cannot be targeted through this path.\n\n## Affected\n\n- `active_woot_products_tables_for_woocommerce._100_free <= 2.1.5`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":36,"depthScoreParts":{"impact":35.8,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}