{"id":"CVE-2026-119211","kind":"vulnerability","aliases":["CVE-2026-119211"],"related":[],"title":"WordPress AAA Autoload Optimizer: stored script injection via option_page parameter","description":"The AAA Autoload Optimizer plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'option_page' parameter in all versions up to, and including, 1.7.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation requires the plugin's Option Tracking setting to be configured to 'Legacy' mode, and succeeds despite WordPress ultimately returning HTTP 403 to the low-privileged caller because the vulnerable 'all' filter fires before the capability check in wp-admin/options.php.","summary":"The AAA Autoload Optimizer plugin for WordPress fails to sanitize the 'option_page' parameter, so a logged-in subscriber can store a script that runs in the browser of any user who opens the injected page. Exploitation needs the plugin's Option Tracking setting set to 'Legacy' mode.","severity":"medium","cvss":4.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","wordpress","wordpress-plugins"],"not_affected_if":["auth-required","option-tracking-not-legacy","plugin-not-installed"],"how_to_check":"- Check the installed version of the AAA Autoload Optimizer plugin; versions up to and including `1.7.0` are affected.\n- In the plugin's settings, check whether Option Tracking is set to 'Legacy'.","fix":null,"status":"open","published_at":"2026-11-06T12:17:19+00:00","first_seen_at":"2026-11-06T12:41:48+00:00","triaged_at":"2026-11-06T12:42:56+00:00","updated_at":"2026-11-06T12:42:56+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-06T12:42:56Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"WordPress AAA Autoload Optimizer: stored script injection via option_page parameter","impact":"medium","summary":"The AAA Autoload Optimizer plugin for WordPress fails to sanitize the 'option_page' parameter, so a logged-in subscriber can store a script that runs in the browser of any user who opens the injected page. Exploitation needs the plugin's Option Tracking setting set to 'Legacy' mode.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugins"],"confidence":0.8,"fix_status":"unknown","needs_auth":"yes","worst_case":"injected scripts run in other users' browsers on the site","analyst_note":"","how_to_check":"- Check the installed version of the AAA Autoload Optimizer plugin; versions up to and including `1.7.0` are affected.\n- In the plugin's settings, check whether Option Tracking is set to 'Legacy'.","plain_action":"","needs_analyst":false,"not_affected_if":["plugin-not-installed","option-tracking-not-legacy","auth-required"],"who_is_affected":"Sites running the AAA Autoload Optimizer plugin at version 1.7.0 or earlier with Option Tracking set to 'Legacy' mode. An attacker needs a subscriber-level account on the site. Sites without the plugin, on a newer version, or with Option Tracking off are not exposed.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000712,"input_tokens":4381,"output_tokens":548,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-119211':14A,17A '-2026':13A,16A '/options.php':181C '1.7.0':99C '403':160C 'aaa':2A,24B,73C 'access':119C,135C 'admin':180C 'arbitrari':124C 'attack':114C 'authent':113C 'autoload':3A,25B,74C 'browser':51B 'caller':166C 'capabl':175C 'check':176C 'configur':149C 'cross':84C 'cross-sit':83C 'cve':12A,15A 'despit':155C 'due':100C 'escap':107C 'execut':131C 'exploit':60B,139C 'fail':30B 'filter':171C 'fire':172C 'http':159C 'includ':98C 'inject':7A,58B,123C,137C 'input':103C 'insuffici':102C 'legaci':70B,151C 'level':118C 'log':40B 'logged-in':39B 'low':164C 'low-privileg':163C 'make':109C 'mode':71B,152C 'need':61B 'open':56B 'optim':4A,26B,75C 'option':9A,34B,65B,89C,144C 'output':106C 'packag':18B 'page':10A,35B,59B,90C,128C,138C 'paramet':11A,36B,91C 'plugin':22B,27B,63B,76C,142C 'possibl':111C 'privileg':165C 'requir':140C 'return':158C 'run':48B 'sanit':32B,104C 'script':6A,46B,86C,126C 'set':67B,68B,146C 'site':85C 'store':5A,44B,82C 'subscrib':42B,117C 'subscriber-level':116C 'succeed':154C 'track':66B,145C 'ultim':157C 'user':54B,134C 'version':94C 'via':8A,87C 'vulner':80C,169C 'web':125C 'whenev':132C 'wordpress':1A,19B,21B,29B,78C,156C 'wordpress-plugin':20B 'wp':179C 'wp-admin':178C","nicknames":[],"mitigations":[],"who_affected":"Sites running the AAA Autoload Optimizer plugin at version 1.7.0 or earlier with Option Tracking set to 'Legacy' mode. An attacker needs a subscriber-level account on the site. Sites without the plugin, on a newer version, or with Option Tracking off are not exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","wordpress","wordpressplugins"],"campaign_type":null,"search_a":"'-119211':14A,17A '-2026':13A,16A 'aaa':2A 'autoload':3A 'cve':12A,15A 'inject':7A 'optim':4A 'option':9A 'page':10A 'paramet':11A 'script':6A 'store':5A 'via':8A 'wordpress':1A","search_b":"'aaa':24B 'autoload':25B 'browser':51B 'exploit':60B 'fail':30B 'inject':58B 'legaci':70B 'log':40B 'logged-in':39B 'mode':71B 'need':61B 'open':56B 'optim':26B 'option':34B,65B 'packag':18B 'page':35B,59B 'paramet':36B 'plugin':22B,27B,63B 'run':48B 'sanit':32B 'script':46B 'set':67B,68B 'store':44B 'subscrib':42B 'track':66B 'user':54B 'wordpress':19B,21B,29B 'wordpress-plugin':20B","search_c":"'/options.php':181C '1.7.0':99C '403':160C 'aaa':73C 'access':119C,135C 'admin':180C 'arbitrari':124C 'attack':114C 'authent':113C 'autoload':74C 'caller':166C 'capabl':175C 'check':176C 'configur':149C 'cross':84C 'cross-sit':83C 'despit':155C 'due':100C 'escap':107C 'execut':131C 'exploit':139C 'filter':171C 'fire':172C 'http':159C 'includ':98C 'inject':123C,137C 'input':103C 'insuffici':102C 'legaci':151C 'level':118C 'low':164C 'low-privileg':163C 'make':109C 'mode':152C 'optim':75C 'option':89C,144C 'output':106C 'page':90C,128C,138C 'paramet':91C 'plugin':76C,142C 'possibl':111C 'privileg':165C 'requir':140C 'return':158C 'sanit':104C 'script':86C,126C 'set':146C 'site':85C 'store':82C 'subscrib':117C 'subscriber-level':116C 'succeed':154C 'track':145C 'ultim':157C 'user':134C 'version':94C 'via':87C 'vulner':80C,169C 'web':125C 'whenev':132C 'wordpress':78C,156C 'wp':179C 'wp-admin':178C","first_public_at":"2026-11-06T12:17:19+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-119211","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119211","severity":null,"published_at":"2026-11-06T12:17:19+00:00","modified_at":"2026-11-06T12:17:19+00:00","first_seen_at":"2026-11-06T12:41:48+00:00","fetched_at":"2026-11-06T12:41:48+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}