{"id":"CVE-2026-104003","kind":"vulnerability","aliases":["CVE-2026-104003"],"related":[],"title":"WP User Avatar plugin: comment text runs shortcodes on profile pages","description":"The WP User Avatar / ProfilePress plugin for WordPress is vulnerable to Arbitrary Shortcode Execution in versions up to, and including, 4.17.5. This is due to the get_user_profile_structure() function assembling the front-end profile buffer — which includes raw comment excerpts inlined by author_comment_query() — and passing the entire buffer to do_shortcode() after only a narrow neutralization pass (ppress_neutralize_buffer_shortcodes) that blocks pp-custom-html and bracket fragments containing HTML delimiters but leaves any other well-formed shortcode intact. This makes it possible for authenticated attackers, with Subscriber-level access and above, to inject arbitrary shortcodes (from any active plugin or theme) with attacker-chosen attributes by posting a comment whose body contains the shortcode markup; the shortcode is then executed server-side when any visitor loads the target's front-end profile Comments tab, letting the attacker reach capability-gated or data-returning shortcodes and inject raw HTML markup into a publicly viewable page.","summary":"WP User Avatar (ProfilePress) up to and including 4.17.5 passes raw user comment content to do_shortcode(), so a logged-in subscriber can post a comment containing a shortcode. The shortcode then runs on the server whenever a visitor opens the target's profile Comments tab, which can reach shortcodes from other plugins or themes and inject raw HTML into a public page.","severity":"medium","cvss":5.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","profilepress","wordpress","wp-user-avatar"],"not_affected_if":["default-config"],"how_to_check":"- Check the installed version of the WP User Avatar / ProfilePress plugin in the WordPress admin Plugins screen, or with `wp plugin get wp-user-avatar --field=version`\n- Confirm whether user comments are enabled on profile pages in the plugin settings","fix":"- Update the WP User Avatar / ProfilePress plugin to a version later than `4.17.5`; the fixed version number is unknown from the sources","status":"open","published_at":"2026-10-16T09:17:03+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T04:18:36+00:00","updated_at":"2026-10-25T04:18:36+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-25T04:18:36Z","model":"claude-haiku-5-5","output":{"fix":"- Update the WP User Avatar / ProfilePress plugin to a version later than `4.17.5`; the fixed version number is unknown from the sources","reach":"internet","title":"WP User Avatar plugin: comment text runs shortcodes on profile pages","impact":"medium","summary":"WP User Avatar (ProfilePress) up to and including 4.17.5 passes raw user comment content to do_shortcode(), so a logged-in subscriber can post a comment containing a shortcode. The shortcode then runs on the server whenever a visitor opens the target's profile Comments tab, which can reach shortcodes from other plugins or themes and inject raw HTML into a public page.","category":"package","nicknames":[],"who_cares":["wordpress","wp-user-avatar","profilepress"],"confidence":0.6,"needs_auth":"yes","worst_case":"Shortcodes from other plugins execute on profile pages, injecting raw HTML","analyst_note":"Confirm the patched version number and whether the Comments tab requires a non-default setting, using the NVD entry and the plugin's changelog.","how_to_check":"- Check the installed version of the WP User Avatar / ProfilePress plugin in the WordPress admin Plugins screen, or with `wp plugin get wp-user-avatar --field=version`\n- Confirm whether user comments are enabled on profile pages in the plugin settings","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"Sites running WP User Avatar / ProfilePress `4.17.5` or earlier where subscribers can post comments that appear on user profile Comments tabs. Sites without this plugin or with a newer version can skip it. Whether profile comments are enabled on a given site is unknown from the sources.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.00068,"input_tokens":3591,"output_tokens":641,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-104003':14A,17A '-2026':13A,16A '4.17.5':33B,109C 'access':187C 'activ':196C 'arbitrari':100C,192C 'assembl':120C 'attack':182C,202C,238C 'attacker-chosen':201C 'attribut':204C 'authent':181C 'author':134C 'avatar':3A,24B,27B,92C 'block':156C 'bodi':210C 'bracket':162C 'buffer':126C,141C,153C 'capability-g':240C 'capabl':241C 'chosen':203C 'comment':5A,37B,51B,70B,130C,135C,208C,234C 'contain':52B,164C,211C 'content':38B 'custom':159C 'cve':12A,15A 'data':245C 'data-return':244C 'delimit':166C 'due':112C 'end':124C,232C 'entir':140C 'excerpt':131C 'execut':102C,219C 'form':173C 'fragment':163C 'front':123C,231C 'front-end':122C,230C 'function':119C 'gate':242C 'get':115C 'html':84B,160C,165C,251C 'includ':32B,108C,128C 'inject':82B,191C,249C 'inlin':132C 'intact':175C 'leav':168C 'let':236C 'level':186C 'load':226C 'log':45B 'logged-in':44B 'make':177C 'markup':214C,252C 'narrow':148C 'neutral':149C,152C 'open':65B 'packag':18B 'page':11A,88B,257C 'pass':34B,138C,150C 'plugin':4A,78B,94C,197C 'possibl':179C 'post':49B,206C 'pp':158C 'pp-custom-html':157C 'ppress':151C 'profil':10A,69B,117C,125C,233C 'profilepress':19B,28B,93C 'public':87B,255C 'queri':136C 'raw':35B,83B,129C,250C 'reach':74B,239C 'return':246C 'run':7A,58B 'server':61B,221C 'server-sid':220C 'shortcod':8A,41B,54B,56B,75B,101C,144C,154C,174C,193C,213C,216C,247C 'side':222C 'structur':118C 'subscrib':47B,185C 'subscriber-level':184C 'tab':71B,235C 'target':67B,228C 'text':6A 'theme':80B,199C 'user':2A,23B,26B,36B,91C,116C 'version':104C 'viewabl':256C 'visitor':64B,225C 'vulner':98C 'well':172C 'well-form':171C 'whenev':62B 'whose':209C 'wordpress':20B,96C 'wp':1A,22B,25B,90C 'wp-user-avatar':21B","nicknames":[],"mitigations":[],"who_affected":"Sites running WP User Avatar / ProfilePress `4.17.5` or earlier where subscribers can post comments that appear on user profile Comments tabs. Sites without this plugin or with a newer version can skip it. Whether profile comments are enabled on a given site is unknown from the sources.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T09:17:03+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-104003","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104003","severity":null,"published_at":"2026-10-16T09:17:03+00:00","modified_at":"2026-10-16T15:17:03+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","fetched_at":"2026-10-23T22:28:55+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"}