{"id":"CVE-2026-124457","kind":"vulnerability","aliases":["CVE-2026-124457"],"related":[],"title":"OpenEMR: path traversal in billing lets users write and read files","description":"OpenEMR before 8.3.0 contains a path traversal vulnerability in interface/billing/sl_eob_process.php that allows authenticated users to write and read files by supplying unsanitized eraname values. Attackers without billing privileges can inject ../ sequences to create ERA report .html files anywhere the web user can write and parse arbitrary .edi files echoed into the report.","summary":"OpenEMR before 8.3.0 has a path traversal flaw in its billing EOB processing script, where unsanitized eraname values let ../ sequences escape the intended directory. An logged-in user can write report files anywhere the web server can write and read arbitrary .edi file contents back out.","severity":"high","cvss":7.6,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"OpenEMR","fixed":[],"affected":"","ecosystem":"vendor"}],"ecosystems":["vendor"],"tags":["openemr","other","php","self-hosted"],"not_affected_if":["openemr-8.3.0-or-later"],"how_to_check":"- Check the installed OpenEMR version (`8.3.0` or later is not affected per the sources); unknown otherwise\n- Look for the file `interface/billing/sl_eob_process.php` in the OpenEMR install and confirm whether the eraname handling is present","fix":"- OpenEMR: move to `8.3.0` or later","status":"open","published_at":"2026-11-08T14:18:13+00:00","first_seen_at":"2026-11-08T14:48:40+00:00","triaged_at":"2026-11-08T14:49:19+00:00","updated_at":"2026-11-08T14:49:19+00:00","category":"other","confidence":0.7,"triage":{"at":"2026-11-08T14:49:19Z","model":"claude-haiku-5-5","output":{"fix":"- OpenEMR: move to `8.3.0` or later","reach":"network","title":"OpenEMR: path traversal in billing lets users write and read files","impact":"high","summary":"OpenEMR before 8.3.0 has a path traversal flaw in its billing EOB processing script, where unsanitized eraname values let ../ sequences escape the intended directory. An logged-in user can write report files anywhere the web server can write and read arbitrary .edi file contents back out.","audience":"businesses","category":"other","nicknames":[],"who_cares":["openemr","self-hosted","php"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"authenticated user writes and reads arbitrary server files","analyst_note":"","how_to_check":"- Check the installed OpenEMR version (`8.3.0` or later is not affected per the sources); unknown otherwise\n- Look for the file `interface/billing/sl_eob_process.php` in the OpenEMR install and confirm whether the eraname handling is present","plain_action":"","product_name":"OpenEMR","needs_analyst":false,"not_affected_if":["openemr-8.3.0-or-later"],"who_is_affected":"OpenEMR installations before 8.3.0 with user accounts that can reach the billing EOB processing feature. Per the description, attackers without billing privileges can still exploit it by injecting ../ sequences. Self-hosted deployments are the ones to look at; sites that cannot reach the billing page from user accounts have less exposure.","user_interaction":"no","product_ecosystem":"vendor","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.00075,"input_tokens":4625,"output_tokens":575,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-124457':14A,17A '-2026':13A,16A '8.3.0':27B,73C 'allow':82C 'anywher':58B,108C 'arbitrari':66B,116C 'attack':95C 'authent':83C 'back':70B 'bill':5A,35B,97C 'contain':74C 'content':69B 'creat':103C 'cve':12A,15A 'directori':48B 'echo':119C 'edi':67B,117C 'eob':36B 'era':104C 'eranam':41B,93C 'escap':45B 'file':11A,57B,68B,89C,107C,118C 'flaw':32B 'host':24B 'html':106C 'inject':100C 'intend':47B 'interface/billing/sl_eob_process.php':80C 'let':6A,43B 'log':51B 'logged-in':50B 'openemr':1A,18A,19B,25B,71C 'pars':115C 'path':2A,30B,76C 'php':21B 'privileg':98C 'process':37B 'read':10A,65B,88C 'report':56B,105C,122C 'script':38B 'self':23B 'self-host':22B 'sequenc':44B,101C 'server':61B 'suppli':91C 'travers':3A,31B,77C 'unsanit':40B,92C 'user':7A,53B,84C,111C 'valu':42B,94C 'vulner':78C 'web':60B,110C 'without':96C 'write':8A,55B,63B,86C,113C","nicknames":[],"mitigations":[],"who_affected":"OpenEMR installations before 8.3.0 with user accounts that can reach the billing EOB processing feature. Per the description, attackers without billing privileges can still exploit it by injecting ../ sequences. Self-hosted deployments are the ones to look at; sites that cannot reach the billing page from user accounts have less exposure.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["openemr"],"ptokens":["openemr"],"labels":["high","openemr","other","php","selfhosted","vendor"],"campaign_type":null,"search_a":"'-124457':14A,17A '-2026':13A,16A 'bill':5A 'cve':12A,15A 'file':11A 'let':6A 'openemr':1A,18A 'path':2A 'read':10A 'travers':3A 'user':7A 'write':8A","search_b":"'8.3.0':27B 'anywher':58B 'arbitrari':66B 'back':70B 'bill':35B 'content':69B 'directori':48B 'edi':67B 'eob':36B 'eranam':41B 'escap':45B 'file':57B,68B 'flaw':32B 'host':24B 'intend':47B 'let':43B 'log':51B 'logged-in':50B 'openemr':19B,25B 'path':30B 'php':21B 'process':37B 'read':65B 'report':56B 'script':38B 'self':23B 'self-host':22B 'sequenc':44B 'server':61B 'travers':31B 'unsanit':40B 'user':53B 'valu':42B 'web':60B 'write':55B,63B","search_c":"'8.3.0':73C 'allow':82C 'anywher':108C 'arbitrari':116C 'attack':95C 'authent':83C 'bill':97C 'contain':74C 'creat':103C 'echo':119C 'edi':117C 'era':104C 'eranam':93C 'file':89C,107C,118C 'html':106C 'inject':100C 'interface/billing/sl_eob_process.php':80C 'openemr':71C 'pars':115C 'path':76C 'privileg':98C 'read':88C 'report':105C,122C 'sequenc':101C 'suppli':91C 'travers':77C 'unsanit':92C 'user':84C,111C 'valu':94C 'vulner':78C 'web':110C 'without':96C 'write':86C,113C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-08-18T08:38:13+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/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-124457","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-124457","severity":null,"published_at":"2026-11-08T14:18:13+00:00","modified_at":"2026-11-08T14:18:13+00:00","first_seen_at":"2026-11-08T14:48:40+00:00","fetched_at":"2026-11-08T14:48:40+00:00","note":null}],"documents":[{"id":102097,"url":"https://github.com/openemr/openemr/security/advisories/GHSA-m6q6-5j87-3cmp","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-08-18T08:38:13+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":102098,"url":"https://www.vulncheck.com/advisories/openemr-before-8.3.0-path-traversal-via-sl-eob-process-php-eraname","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"}