{"id":"CVE-2026-126474","kind":"vulnerability","aliases":["CVE-2026-126474"],"related":[],"title":"OpenEMR: reflected cross-site scripting in ACL module steals sessions","description":"OpenEMR before 8.5.0 contains a reflected cross-site scripting vulnerability in the ACL module that allows attackers to execute JavaScript in authenticated sessions via the module_id parameter. Attackers can deliver crafted acl/index or acl/acl links that inject unencoded input into inline script blocks, stealing non-HttpOnly session cookies and modifying ACL configuration.","summary":"OpenEMR before 8.5.0 has a reflected cross-site scripting flaw in its ACL module, triggered through the module_id parameter on acl/index and acl/acl links. An attacker who gets a logged-in user to open a crafted link can run JavaScript in that session, steal non-HttpOnly session cookies and change ACL configuration.","severity":"medium","cvss":6.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["healthcare","openemr","other","self-hosted"],"not_affected_if":["version-8.5.0-or-later"],"how_to_check":"- Check the installed OpenEMR version in the application's version setting or `version.php` and compare it with `8.5.0`.\n- Confirm whether the instance is reachable by users who open links from email or other sites.","fix":"- OpenEMR versions before `8.5.0`: move to `8.5.0` or later, per the NVD description.","status":"open","published_at":"2026-11-13T10:17:56+00:00","first_seen_at":"2026-11-13T10:47:25+00:00","triaged_at":"2026-11-13T10:56:27+00:00","updated_at":"2026-11-13T10:56:27+00:00","category":"other","confidence":0.7,"triage":{"at":"2026-11-13T10:56:27Z","model":"claude-haiku-5-5","output":{"fix":"- OpenEMR versions before `8.5.0`: move to `8.5.0` or later, per the NVD description.","reach":"internet","title":"OpenEMR: reflected cross-site scripting in ACL module steals sessions","impact":"medium","summary":"OpenEMR before 8.5.0 has a reflected cross-site scripting flaw in its ACL module, triggered through the module_id parameter on acl/index and acl/acl links. An attacker who gets a logged-in user to open a crafted link can run JavaScript in that session, steal non-HttpOnly session cookies and change ACL configuration.","audience":"businesses","category":"other","nicknames":[],"who_cares":["openemr","healthcare","self-hosted"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker runs scripts in a staff session and changes access rules","analyst_note":"","how_to_check":"- Check the installed OpenEMR version in the application's version setting or `version.php` and compare it with `8.5.0`.\n- Confirm whether the instance is reachable by users who open links from email or other sites.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["version-8.5.0-or-later"],"who_is_affected":"Any OpenEMR installation before 8.5.0 where staff log in and can be sent crafted links. Exposure depends on users clicking links while authenticated; instances with no logged-in users exposed to outside links face lower risk. Administrators running OpenEMR 8.5.0 or later are not affected.","user_interaction":"yes","product_ecosystem":"","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000749,"input_tokens":4633,"output_tokens":572,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-126474':14A,17A '-2026':13A,16A '8.5.0':26B,82C 'acl':8A,37B,78B,93C,133C 'acl/acl':48B,115C 'acl/index':46B,113C 'allow':96C 'attack':51B,97C,109C 'authent':102C 'block':124C 'chang':77B 'configur':79B,134C 'contain':83C 'cooki':75B,130C 'craft':62B,112C 'cross':4A,31B,87C 'cross-sit':3A,30B,86C 'cve':12A,15A 'deliv':111C 'execut':99C 'flaw':34B 'get':53B 'healthcar':18B 'host':23B 'httpon':73B,128C 'id':43B,107C 'inject':118C 'inlin':122C 'input':120C 'javascript':66B,100C 'link':49B,63B,116C 'log':56B 'logged-in':55B 'modifi':132C 'modul':9A,38B,42B,94C,106C 'non':72B,127C 'non-httpon':71B,126C 'open':60B 'openemr':1A,19B,24B,80C 'paramet':44B,108C 'reflect':2A,29B,85C 'run':65B 'script':6A,33B,89C,123C 'self':22B 'self-host':21B 'session':11A,69B,74B,103C,129C 'site':5A,32B,88C 'steal':10A,70B,125C 'trigger':39B 'unencod':119C 'user':58B 'via':104C 'vulner':90C","nicknames":[],"mitigations":[],"who_affected":"Any OpenEMR installation before 8.5.0 where staff log in and can be sent crafted links. Exposure depends on users clicking links while authenticated; instances with no logged-in users exposed to outside links face lower risk. Administrators running OpenEMR 8.5.0 or later are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["healthcare","medium","openemr","other","selfhosted"],"campaign_type":null,"search_a":"'-126474':14A,17A '-2026':13A,16A 'acl':8A 'cross':4A 'cross-sit':3A 'cve':12A,15A 'modul':9A 'openemr':1A 'reflect':2A 'script':6A 'session':11A 'site':5A 'steal':10A","search_b":"'8.5.0':26B 'acl':37B,78B 'acl/acl':48B 'acl/index':46B 'attack':51B 'chang':77B 'configur':79B 'cooki':75B 'craft':62B 'cross':31B 'cross-sit':30B 'flaw':34B 'get':53B 'healthcar':18B 'host':23B 'httpon':73B 'id':43B 'javascript':66B 'link':49B,63B 'log':56B 'logged-in':55B 'modul':38B,42B 'non':72B 'non-httpon':71B 'open':60B 'openemr':19B,24B 'paramet':44B 'reflect':29B 'run':65B 'script':33B 'self':22B 'self-host':21B 'session':69B,74B 'site':32B 'steal':70B 'trigger':39B 'user':58B","search_c":"'8.5.0':82C 'acl':93C,133C 'acl/acl':115C 'acl/index':113C 'allow':96C 'attack':97C,109C 'authent':102C 'block':124C 'configur':134C 'contain':83C 'cooki':130C 'craft':112C 'cross':87C 'cross-sit':86C 'deliv':111C 'execut':99C 'httpon':128C 'id':107C 'inject':118C 'inlin':122C 'input':120C 'javascript':100C 'link':116C 'modifi':132C 'modul':94C,106C 'non':127C 'non-httpon':126C 'openemr':80C 'paramet':108C 'reflect':85C 'script':89C,123C 'session':103C,129C 'site':88C 'steal':125C 'unencod':119C 'via':104C 'vulner':90C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-10-28T01:26:14+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-126474","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126474","severity":null,"published_at":"2026-11-13T10:17:56+00:00","modified_at":"2026-11-13T10:17:56+00:00","first_seen_at":"2026-11-13T10:47:25+00:00","fetched_at":"2026-11-13T10:47:25+00:00","note":null}],"documents":[{"id":145191,"url":"https://github.com/openemr/openemr/security/advisories/GHSA-mccm-83g2-7v57","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-28T01:26:14+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":145192,"url":"https://www.vulncheck.com/advisories/openemr-before-8.5.0-reflected-xss-via-acl-module-module-id-parameter","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}