{"id":"CVE-2026-120551","kind":"vulnerability","aliases":["CVE-2026-120551"],"related":[],"title":"WP Compress WordPress plugin: authorization bypass lets attackers take over settings","description":"The WP Compress – Instant Performance & Speed Optimization plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 7.22.01. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for unauthenticated attackers to link the victim site to an attacker-controlled WP Compress account, overwrite plugin settings to an aggressive live-CDN preset, and gain the shared api_key that authenticates all nopriv HMAC-gated endpoints — enabling full control over cache purging, file deletion, opcode cache invalidation, and other privileged plugin operations. This vulnerability only affects fresh installations or lite/free-mode installs where no api_key is already stored, as the sole guard fails open when the stored key is absent.","summary":"WP Compress, a WordPress performance plugin, fails to check authorization on some actions, so an unauthenticated attacker can link the site to their own WP Compress account and overwrite its settings. The attacker can also obtain the shared API key, which lets them purge caches, delete files and invalidate the opcode cache on the site.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wp-compress"],"not_affected_if":["api-key-stored","newer-version","plugin-absent"],"how_to_check":"- Check whether the WP Compress plugin is installed and its version is `7.22.01` or earlier in the WordPress plugins screen.\n- Check whether a stored API key exists in the plugin settings; the flaw only applies when no api_key is stored (fresh installs or lite/free mode).","fix":"- WP Compress plugin: unknown, the sources do not name a fixed version.","status":"open","published_at":"2026-11-03T05:18:32+00:00","first_seen_at":"2026-11-03T05:48:53+00:00","triaged_at":"2026-11-03T05:49:59+00:00","updated_at":"2026-11-03T05:49:59+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-03T05:49:59Z","model":"claude-haiku-5-5","output":{"fix":"- WP Compress plugin: unknown, the sources do not name a fixed version.","reach":"internet","title":"WP Compress WordPress plugin: authorization bypass lets attackers take over settings","impact":"high","summary":"WP Compress, a WordPress performance plugin, fails to check authorization on some actions, so an unauthenticated attacker can link the site to their own WP Compress account and overwrite its settings. The attacker can also obtain the shared API key, which lets them purge caches, delete files and invalidate the opcode cache on the site.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wp-compress","self-hosted"],"confidence":0.7,"fix_status":"unknown","needs_auth":"no","worst_case":"Attacker gains plugin API key and controls cache purging and file deletion.","analyst_note":"Confirm the fixed version and whether a stored API key blocks the flaw on the NVD page (https://nvd.nist.gov/vuln/detail/CVE-2026-120551).","how_to_check":"- Check whether the WP Compress plugin is installed and its version is `7.22.01` or earlier in the WordPress plugins screen.\n- Check whether a stored API key exists in the plugin settings; the flaw only applies when no api_key is stored (fresh installs or lite/free mode).","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-absent","newer-version","api-key-stored"],"who_is_affected":"Sites running the WP Compress plugin version 7.22.01 or earlier where no API key is stored, which covers fresh installations and lite or free-mode installs. The flaw lets an unauthenticated visitor reach endpoints that the plugin guards only when a stored key exists. Sites with the plugin absent, or with a stored API key and a newer version, are not described as exposed.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000769,"input_tokens":4295,"output_tokens":678,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-120551':14A,17A '-2026':13A,16A '7.22.01':103C 'absent':209C 'account':52B,141C 'action':38B,121C 'affect':185C 'aggress':147C 'alreadi':196C 'also':60B 'api':64B,156C,193C 'attack':8A,42B,58B,128C,137C 'attacker-control':136C 'authent':159C 'author':5A,35B,94C,117C 'bypass':6A,95C 'cach':70B,77B,170C,175C 'cdn':150C 'check':34B 'compress':2A,25B,27B,51B,83C,140C 'control':138C,168C 'cve':12A,15A 'delet':71B,173C 'due':106C 'enabl':166C 'endpoint':165C 'fail':32B,202C 'file':72B,172C 'fresh':186C 'full':167C 'gain':153C 'gate':164C 'guard':201C 'hmac':163C 'hmac-gat':162C 'host':21B 'includ':102C 'instal':187C,190C 'instant':84C 'invalid':74B,176C 'key':65B,157C,194C,207C 'let':7A,67B 'link':44B,130C 'lite/free-mode':189C 'live':149C 'live-cdn':148C 'make':123C 'nopriv':161C 'obtain':61B 'opcod':76B,174C 'open':203C 'oper':181C 'optim':87C 'overwrit':54B,142C 'packag':18B 'perform':30B,85C,119C 'plugin':4A,31B,88C,109C,143C,180C 'possibl':125C 'preset':151C 'privileg':179C 'proper':111C 'purg':69B,171C 'self':20B 'self-host':19B 'set':11A,56B,144C 'share':63B,155C 'site':46B,80B,133C 'sole':200C 'speed':86C 'store':197C,206C 'take':9A 'unauthent':41B,127C 'user':115C 'verifi':112C 'version':98C 'victim':132C 'vulner':92C,183C 'wordpress':3A,22B,29B,90C 'wp':1A,24B,26B,50B,82C,139C 'wp-compress':23B","nicknames":[],"mitigations":[],"who_affected":"Sites running the WP Compress plugin version 7.22.01 or earlier where no API key is stored, which covers fresh installations and lite or free-mode installs. The flaw lets an unauthenticated visitor reach endpoints that the plugin guards only when a stored key exists. Sites with the plugin absent, or with a stored API key and a newer version, are not described as exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","selfhosted","wordpress","wpcompress"],"first_public_at":"2026-11-03T05:18:32+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-120551","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120551","severity":null,"published_at":"2026-11-03T05:18:32+00:00","modified_at":"2026-11-03T05:18:32+00:00","first_seen_at":"2026-11-03T05:48:53+00:00","fetched_at":"2026-11-03T05:48:53+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}