{"id":"CVE-2026-122059","kind":"vulnerability","aliases":["CVE-2026-122059"],"related":[],"title":"WP ImageViewer WordPress plugin: stored XSS via image alt text","description":"The WP ImageViewer plugin for WordPress is vulnerable to Stored DOM-Based Cross-Site Scripting via the 'img.alt' parameter in all versions up to, and including, 3.0.2 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. This requires a front-end content plugin such as bbPress to be active, as it grants Subscriber-level users the bbp_participant capability needed to publish image-bearing content containing the encoded payload. Exploitation by attackers with contributor-level access and above requires that the site allows Contributors (or higher) to submit image HTML in post content — the WordPress default. On a default installation, where that is not configured, the vulnerability requires attackers with custom-level access and above.","summary":"The WP ImageViewer plugin for WordPress does not sanitize the img.alt attribute, so stored script code runs in pages. An authenticated attacker with subscriber-level access or higher can inject a payload that runs in the browser of any visitor who opens the injected page.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["bbpress","package","wordpress","wp-imageviewer"],"not_affected_if":["no-untrusted-user-accounts","plugin-not-installed","plugin-version-above-3.0.2"],"how_to_check":"- Check whether the WP ImageViewer plugin is installed and its version (in the WordPress admin plugin list or the plugin's readme.txt).\n- Check whether the installed version is `3.0.2` or lower.\n- Check whether bbPress or another front-end content plugin is active, and whether Contributors or higher can submit image HTML in posts.","fix":null,"status":"open","published_at":"2026-11-07T12:17:45+00:00","first_seen_at":"2026-11-07T12:47:09+00:00","triaged_at":"2026-11-07T12:49:02+00:00","updated_at":"2026-11-07T12:49:02+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-07T12:49:02Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"WP ImageViewer WordPress plugin: stored XSS via image alt text","impact":"medium","summary":"The WP ImageViewer plugin for WordPress does not sanitize the img.alt attribute, so stored script code runs in pages. An authenticated attacker with subscriber-level access or higher can inject a payload that runs in the browser of any visitor who opens the injected page.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wp-imageviewer","bbpress"],"confidence":0.8,"fix_status":"unknown","needs_auth":"yes","worst_case":"Attacker runs scripts in visitors' browsers and steals sessions.","analyst_note":"","how_to_check":"- Check whether the WP ImageViewer plugin is installed and its version (in the WordPress admin plugin list or the plugin's readme.txt).\n- Check whether the installed version is `3.0.2` or lower.\n- Check whether bbPress or another front-end content plugin is active, and whether Contributors or higher can submit image HTML in posts.","plain_action":"","needs_analyst":false,"not_affected_if":["plugin-not-installed","plugin-version-above-3.0.2","no-untrusted-user-accounts"],"who_is_affected":"Sites running the WP ImageViewer plugin at version 3.0.2 or lower. Exposure is higher where a front-end content plugin such as bbPress is active, which lets Subscriber-level users publish image content, or where Contributors can submit image HTML in posts (the WordPress default). On a default installation without those settings, an attacker needs custom-level access or higher.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000751,"input_tokens":4435,"output_tokens":614,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-122059':13A,16A '-2026':12A,15A '3.0.2':97C 'access':49B,117C,133C,180C,218C 'activ':150C 'allow':187C 'alt':9A 'arbitrari':122C 'attack':44B,112C,175C,213C 'attribut':34B 'authent':43B,111C 'base':81C 'bbp':159C 'bbpress':17B,147C 'bear':167C 'browser':60B 'capabl':161C 'code':38B 'configur':209C 'contain':169C 'content':143C,168C,197C 'contributor':178C,188C 'contributor-level':177C 'cross':83C 'cross-sit':82C 'custom':216C 'custom-level':215C 'cve':11A,14A 'default':200C,203C 'dom':80C 'dom-bas':79C 'due':98C 'encod':171C 'end':142C 'escap':105C 'execut':129C 'exploit':173C 'front':141C 'front-end':140C 'grant':153C 'higher':51B,190C 'html':194C 'imag':8A,166C,193C 'image-bear':165C 'imageview':2A,22B,25B,71C 'img.alt':33B,88C 'includ':96C 'inject':53B,67B,121C,135C 'input':101C 'instal':204C 'insuffici':100C 'level':48B,116C,156C,179C,217C 'make':107C 'need':162C 'open':65B 'output':104C 'packag':18B 'page':41B,68B,126C,136C 'paramet':89C 'particip':160C 'payload':55B,172C 'plugin':4A,26B,72C,144C 'possibl':109C 'post':196C 'publish':164C 'requir':138C,183C,212C 'run':39B,57B 'sanit':31B,102C 'script':37B,85C,124C 'site':84C,186C 'store':5A,36B,78C 'submit':192C 'subscrib':47B,115C,155C 'subscriber-level':46B,114C,154C 'text':10A 'user':132C,157C 'version':92C 'via':7A,86C 'visitor':63B 'vulner':76C,211C 'web':123C 'whenev':130C 'wordpress':3A,19B,28B,74C,199C 'wp':1A,21B,24B,70C 'wp-imageview':20B 'xss':6A","nicknames":[],"mitigations":[],"who_affected":"Sites running the WP ImageViewer plugin at version 3.0.2 or lower. Exposure is higher where a front-end content plugin such as bbPress is active, which lets Subscriber-level users publish image content, or where Contributors can submit image HTML in posts (the WordPress default). On a default installation without those settings, an attacker needs custom-level access or higher.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["bbpress","medium","package","wordpress","wpimageviewer"],"campaign_type":null,"search_a":"'-122059':13A,16A '-2026':12A,15A 'alt':9A 'cve':11A,14A 'imag':8A 'imageview':2A 'plugin':4A 'store':5A 'text':10A 'via':7A 'wordpress':3A 'wp':1A 'xss':6A","search_b":"'access':49B 'attack':44B 'attribut':34B 'authent':43B 'bbpress':17B 'browser':60B 'code':38B 'higher':51B 'imageview':22B,25B 'img.alt':33B 'inject':53B,67B 'level':48B 'open':65B 'packag':18B 'page':41B,68B 'payload':55B 'plugin':26B 'run':39B,57B 'sanit':31B 'script':37B 'store':36B 'subscrib':47B 'subscriber-level':46B 'visitor':63B 'wordpress':19B,28B 'wp':21B,24B 'wp-imageview':20B","search_c":"'3.0.2':97C 'access':117C,133C,180C,218C 'activ':150C 'allow':187C 'arbitrari':122C 'attack':112C,175C,213C 'authent':111C 'base':81C 'bbp':159C 'bbpress':147C 'bear':167C 'capabl':161C 'configur':209C 'contain':169C 'content':143C,168C,197C 'contributor':178C,188C 'contributor-level':177C 'cross':83C 'cross-sit':82C 'custom':216C 'custom-level':215C 'default':200C,203C 'dom':80C 'dom-bas':79C 'due':98C 'encod':171C 'end':142C 'escap':105C 'execut':129C 'exploit':173C 'front':141C 'front-end':140C 'grant':153C 'higher':190C 'html':194C 'imag':166C,193C 'image-bear':165C 'imageview':71C 'img.alt':88C 'includ':96C 'inject':121C,135C 'input':101C 'instal':204C 'insuffici':100C 'level':116C,156C,179C,217C 'make':107C 'need':162C 'output':104C 'page':126C,136C 'paramet':89C 'particip':160C 'payload':172C 'plugin':72C,144C 'possibl':109C 'post':196C 'publish':164C 'requir':138C,183C,212C 'sanit':102C 'script':85C,124C 'site':84C,186C 'store':78C 'submit':192C 'subscrib':115C,155C 'subscriber-level':114C,154C 'user':132C,157C 'version':92C 'via':86C 'vulner':76C,211C 'web':123C 'whenev':130C 'wordpress':74C,199C 'wp':70C","first_public_at":"2026-11-07T12:17:45+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/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-122059","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-122059","severity":null,"published_at":"2026-11-07T12:17:45+00:00","modified_at":"2026-11-07T12:17:45+00:00","first_seen_at":"2026-11-07T12:47:09+00:00","fetched_at":"2026-11-07T12:47:09+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"}