{"id":"CVE-2026-124969","kind":"vulnerability","aliases":["CVE-2026-124969"],"related":[],"title":"Optimole WordPress plugin: unauthenticated arbitrary file deletion, possible code execution","description":"The Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the replace_urls_in_value function in all versions up to, and including, 4.2.19. 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). Successful exploitation requires PEAR's Archive_Tar library to be present and loadable on the host (common in official WordPress Docker images and many PHP distributions), and an administrator must subsequently use the plugin's Rename control on any attachment after the attacker has staged a malicious payload in a comment. Successful exploitation additionally requires an action by an administrator — the attacker cannot trigger the vulnerability on their own.","summary":"The Optimole image optimization plugin for WordPress lets unauthenticated attackers delete arbitrary files on the server through insufficient file path validation in replace_urls_in_value, in all versions up to and including 4.2.19. Deleting a file such as wp-config.php can lead to remote code execution.","severity":"high","cvss":7.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["optimole","package","php","self-hosted","wordpress"],"not_affected_if":["archive-tar-absent","newer-version","plugin-not-installed"],"how_to_check":"- Check the installed Optimole plugin version in the WordPress admin plugins list or the plugin's main file header; versions up to and including `4.2.19` are affected.\n- Check whether PEAR's Archive_Tar library is present and loadable on the PHP host.","fix":"- Optimole WordPress plugin: move to a version later than `4.2.19` (the fixed version is not stated in the sources).","status":"open","published_at":"2026-11-14T05:18:32+00:00","first_seen_at":"2026-11-14T05:27:43+00:00","triaged_at":"2026-11-14T05:29:27+00:00","updated_at":"2026-11-14T05:29:27+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-14T05:29:27Z","model":"claude-haiku-5-5","output":{"fix":"- Optimole WordPress plugin: move to a version later than `4.2.19` (the fixed version is not stated in the sources).","reach":"internet","title":"Optimole WordPress plugin: unauthenticated arbitrary file deletion, possible code execution","impact":"high","summary":"The Optimole image optimization plugin for WordPress lets unauthenticated attackers delete arbitrary files on the server through insufficient file path validation in replace_urls_in_value, in all versions up to and including 4.2.19. Deleting a file such as wp-config.php can lead to remote code execution.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","php","optimole","self-hosted"],"confidence":0.7,"fix_status":"unknown","needs_auth":"no","worst_case":"Attacker deletes wp-config.php, leading to code execution on the server","analyst_note":"Confirm the fixed version of the Optimole plugin after 4.2.19 from the NVD or WordPress plugin changelog.","how_to_check":"- Check the installed Optimole plugin version in the WordPress admin plugins list or the plugin's main file header; versions up to and including `4.2.19` are affected.\n- Check whether PEAR's Archive_Tar library is present and loadable on the PHP host.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["plugin-not-installed","newer-version","archive-tar-absent"],"who_is_affected":"Sites running the Optimole plugin at version 4.2.19 or earlier are exposed. Exploitation also requires PEAR's Archive_Tar library to be present and loadable on the host, which is common in official WordPress Docker images, and an administrator must use the plugin's Rename control on an attachment after an attacker stages a payload in a comment. Sites without the plugin, or running a later version, can skip it.","user_interaction":"yes","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000823,"input_tokens":4768,"output_tokens":693,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-124969':13A,16A '-2026':12A,15A '4.2.19':57B,111C 'action':199C 'addit':196C 'administr':171C,202C 'arbitrari':5A,35B,88C,121C 'archiv':148C 'attach':182C 'attack':33B,118C,185C,204C 'avif':76C 'cannot':205C 'cdn':77C 'code':9A,68B,132C 'comment':193C 'common':159C 'control':179C 'convert':74C 'cve':11A,14A 'delet':7A,34B,58B,90C,120C,139C 'distribut':168C 'docker':163C 'due':91C 'easili':128C 'execut':10A,69B,133C 'exploit':144C,195C 'file':6A,36B,42B,60B,89C,94C,122C,137C 'function':103C 'host':22B,158C 'imag':26B,73C,80C,164C 'includ':56B,110C 'insuffici':41B,93C 'lazi':78C 'lead':65B,129C 'let':31B 'librari':150C 'load':79C 'loadabl':155C 'make':113C 'malici':189C 'mani':166C 'must':172C 'offici':161C 'optim':27B,72C,81C 'optimol':1A,17B,25B,71C 'packag':18B 'path':43B,95C 'payload':190C 'pear':146C 'php':19B,167C 'plugin':3A,28B,82C,176C 'possibl':8A,115C 'present':153C 'remot':67B,131C 'renam':178C 'replac':46B,99C 'requir':145C,197C 'right':136C 'self':21B 'self-host':20B 'server':39B,125C 'stage':187C 'subsequ':173C 'success':143C,194C 'tar':149C 'trigger':206C 'unauthent':4A,32B,117C 'url':47B,100C 'use':174C 'valid':44B,96C 'valu':49B,102C 'version':52B,106C 'vulner':86C,208C 'webp':75C 'wordpress':2A,23B,30B,84C,162C 'wp-config.php':63B,142C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Optimole plugin at version 4.2.19 or earlier are exposed. Exploitation also requires PEAR's Archive_Tar library to be present and loadable on the host, which is common in official WordPress Docker images, and an administrator must use the plugin's Rename control on an attachment after an attacker stages a payload in a comment. Sites without the plugin, or running a later version, can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","optimole","package","php","selfhosted","wordpress"],"campaign_type":null,"search_a":"'-124969':13A,16A '-2026':12A,15A 'arbitrari':5A 'code':9A 'cve':11A,14A 'delet':7A 'execut':10A 'file':6A 'optimol':1A 'plugin':3A 'possibl':8A 'unauthent':4A 'wordpress':2A","search_b":"'4.2.19':57B 'arbitrari':35B 'attack':33B 'code':68B 'delet':34B,58B 'execut':69B 'file':36B,42B,60B 'host':22B 'imag':26B 'includ':56B 'insuffici':41B 'lead':65B 'let':31B 'optim':27B 'optimol':17B,25B 'packag':18B 'path':43B 'php':19B 'plugin':28B 'remot':67B 'replac':46B 'self':21B 'self-host':20B 'server':39B 'unauthent':32B 'url':47B 'valid':44B 'valu':49B 'version':52B 'wordpress':23B,30B 'wp-config.php':63B","search_c":"'4.2.19':111C 'action':199C 'addit':196C 'administr':171C,202C 'arbitrari':88C,121C 'archiv':148C 'attach':182C 'attack':118C,185C,204C 'avif':76C 'cannot':205C 'cdn':77C 'code':132C 'comment':193C 'common':159C 'control':179C 'convert':74C 'delet':90C,120C,139C 'distribut':168C 'docker':163C 'due':91C 'easili':128C 'execut':133C 'exploit':144C,195C 'file':89C,94C,122C,137C 'function':103C 'host':158C 'imag':73C,80C,164C 'includ':110C 'insuffici':93C 'lazi':78C 'lead':129C 'librari':150C 'load':79C 'loadabl':155C 'make':113C 'malici':189C 'mani':166C 'must':172C 'offici':161C 'optim':72C,81C 'optimol':71C 'path':95C 'payload':190C 'pear':146C 'php':167C 'plugin':82C,176C 'possibl':115C 'present':153C 'remot':131C 'renam':178C 'replac':99C 'requir':145C,197C 'right':136C 'server':125C 'stage':187C 'subsequ':173C 'success':143C,194C 'tar':149C 'trigger':206C 'unauthent':117C 'url':100C 'use':174C 'valid':96C 'valu':102C 'version':106C 'vulner':86C,208C 'webp':75C 'wordpress':84C,162C 'wp-config.php':142C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-14T05:18:32+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-124969","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-124969","severity":null,"published_at":"2026-11-14T05:18:32+00:00","modified_at":"2026-11-14T05:18:32+00:00","first_seen_at":"2026-11-14T05:27:43+00:00","fetched_at":"2026-11-14T05:27:43+00:00","note":null}],"documents":[],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}