{"id":"CVE-2026-107658","kind":"vulnerability","aliases":["CVE-2026-107658"],"related":[],"title":"BuddyForms WordPress plugin: unauthenticated stored cross-site scripting via form parameter","description":"The BuddyForms plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'bf_post_type (and buddyforms_form_content)' parameter in all versions up to, and including, 2.10.5 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation requires that at least one BuddyForms form with public submissions enabled exists on the site (so that the required nonce can be harvested from the public form page) and that the active theme registers a widgetized sidebar, allowing the injected customize_changeset to place a malicious Custom HTML widget into the site's front end.","summary":"The BuddyForms plugin for WordPress does not sanitize or escape the bf_post_type and buddyforms_form_content parameters in versions up to and including 2.10.5. An unauthenticated attacker can store scripts that run in the browser of anyone who opens an affected page.","severity":"medium","cvss":5.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["buddyforms","package","self-hosted","wordpress"],"not_affected_if":["no-public-forms","no-widgetized-sidebar","plugin-not-installed"],"how_to_check":"- Check the installed BuddyForms plugin version in the WordPress admin Plugins screen or in the plugin's main file header; versions up to and including `2.10.5` are listed as affected.\n- Check whether any BuddyForms form has public submissions enabled, since the sources say that is required for exploitation.\n- Check whether the active theme registers a widgetized sidebar, which the sources say is also required.","fix":"- BuddyForms plugin: the sources do not name a fixed version; unknown.","status":"open","published_at":"2026-11-06T12:17:16+00:00","first_seen_at":"2026-11-06T12:41:48+00:00","triaged_at":"2026-11-06T12:42:53+00:00","updated_at":"2026-11-06T12:42:53+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-06T12:42:53Z","model":"claude-haiku-5-5","output":{"fix":"- BuddyForms plugin: the sources do not name a fixed version; unknown.","reach":"internet","title":"BuddyForms WordPress plugin: unauthenticated stored cross-site scripting via form parameter","impact":"medium","summary":"The BuddyForms plugin for WordPress does not sanitize or escape the bf_post_type and buddyforms_form_content parameters in versions up to and including 2.10.5. An unauthenticated attacker can store scripts that run in the browser of anyone who opens an affected page.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","buddyforms","self-hosted"],"confidence":0.7,"fix_status":"unknown","needs_auth":"no","worst_case":"Attacker scripts run in visitors' browsers on the site.","analyst_note":"Find the fixed BuddyForms version and the vendor advisory; the sources give only the affected range up to 2.10.5.","how_to_check":"- Check the installed BuddyForms plugin version in the WordPress admin Plugins screen or in the plugin's main file header; versions up to and including `2.10.5` are listed as affected.\n- Check whether any BuddyForms form has public submissions enabled, since the sources say that is required for exploitation.\n- Check whether the active theme registers a widgetized sidebar, which the sources say is also required.","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-not-installed","no-public-forms","no-widgetized-sidebar"],"who_is_affected":"Sites running the BuddyForms WordPress plugin at version 2.10.5 or earlier. The sources say exploitation needs at least one BuddyForms form with public submissions enabled and a theme that registers a widgetized sidebar. Sites without BuddyForms, or with a newer version, are not affected by this description.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000775,"input_tokens":4380,"output_tokens":674,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-107658':15A,18A '-2026':14A,17A '2.10.5':50B,99C 'access':128C 'activ':164C 'affect':67B 'allow':170C 'anyon':63B 'arbitrari':117C 'attack':53B,114C 'bf':36B,84C 'browser':61B 'buddyform':1A,19B,26B,40B,70C,88C,138C 'changeset':174C 'content':42B,90C 'cross':7A,79C 'cross-sit':6A,78C 'custom':173C,179C 'cve':13A,16A 'due':100C 'enabl':143C 'end':187C 'escap':34B,107C 'execut':124C 'exist':144C 'exploit':132C 'form':11A,41B,89C,139C,159C 'front':186C 'harvest':155C 'host':23B 'html':180C 'includ':49B,98C 'inject':116C,130C,172C 'input':103C 'insuffici':102C 'least':136C 'make':109C 'malici':178C 'nonc':152C 'one':137C 'open':65B 'output':106C 'packag':20B 'page':68B,121C,131C,160C 'paramet':12A,43B,91C 'place':176C 'plugin':3A,27B,71C 'possibl':111C 'post':37B,85C 'public':141C,158C 'regist':166C 'requir':133C,151C 'run':58B 'sanit':32B,104C 'script':9A,56B,81C,119C 'self':22B 'self-host':21B 'sidebar':169C 'site':8A,80C,147C,184C 'store':5A,55B,77C 'submiss':142C 'theme':165C 'type':38B,86C 'unauthent':4A,52B,113C 'user':127C 'version':45B,94C 'via':10A,82C 'vulner':75C 'web':118C 'whenev':125C 'widget':168C,181C 'wordpress':2A,24B,29B,73C","nicknames":[],"mitigations":[],"who_affected":"Sites running the BuddyForms WordPress plugin at version 2.10.5 or earlier. The sources say exploitation needs at least one BuddyForms form with public submissions enabled and a theme that registers a widgetized sidebar. Sites without BuddyForms, or with a newer version, are not affected by this description.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["buddyforms","medium","package","selfhosted","wordpress"],"campaign_type":null,"search_a":"'-107658':15A,18A '-2026':14A,17A 'buddyform':1A 'cross':7A 'cross-sit':6A 'cve':13A,16A 'form':11A 'paramet':12A 'plugin':3A 'script':9A 'site':8A 'store':5A 'unauthent':4A 'via':10A 'wordpress':2A","search_b":"'2.10.5':50B 'affect':67B 'anyon':63B 'attack':53B 'bf':36B 'browser':61B 'buddyform':19B,26B,40B 'content':42B 'escap':34B 'form':41B 'host':23B 'includ':49B 'open':65B 'packag':20B 'page':68B 'paramet':43B 'plugin':27B 'post':37B 'run':58B 'sanit':32B 'script':56B 'self':22B 'self-host':21B 'store':55B 'type':38B 'unauthent':52B 'version':45B 'wordpress':24B,29B","search_c":"'2.10.5':99C 'access':128C 'activ':164C 'allow':170C 'arbitrari':117C 'attack':114C 'bf':84C 'buddyform':70C,88C,138C 'changeset':174C 'content':90C 'cross':79C 'cross-sit':78C 'custom':173C,179C 'due':100C 'enabl':143C 'end':187C 'escap':107C 'execut':124C 'exist':144C 'exploit':132C 'form':89C,139C,159C 'front':186C 'harvest':155C 'html':180C 'includ':98C 'inject':116C,130C,172C 'input':103C 'insuffici':102C 'least':136C 'make':109C 'malici':178C 'nonc':152C 'one':137C 'output':106C 'page':121C,131C,160C 'paramet':91C 'place':176C 'plugin':71C 'possibl':111C 'post':85C 'public':141C,158C 'regist':166C 'requir':133C,151C 'sanit':104C 'script':81C,119C 'sidebar':169C 'site':80C,147C,184C 'store':77C 'submiss':142C 'theme':165C 'type':86C 'unauthent':113C 'user':127C 'version':94C 'via':82C 'vulner':75C 'web':118C 'whenev':125C 'widget':168C,181C 'wordpress':73C","first_public_at":"2026-11-06T12:17:16+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/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-107658","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107658","severity":null,"published_at":"2026-11-06T12:17:16+00:00","modified_at":"2026-11-06T12:17:16+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"}