CVE-2026-33346 OpenEMR has stored XSS in portal_payment.php via Unescaped table_args

High 8.7 Published Updated

A stored XSS vulnerability in OpenEMR allows patient portal users to execute arbitrary JavaScript in staff browsers via unescaped payment data.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
A user has to click or open something
Fix
None listed

What is CVE-2026-33346?

CVE-2026-33346 is a high-severity cross-site scripting vulnerability in Open-Emr Openemr, published on 19 Mar 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.

Official description

OpenEMR is a free and open source electronic health records and medical practice management application. Prior to 8.0.0.2, a stored cross-site scripting (XSS) vulnerability in the patient portal payment flow allows a patient portal user to persist arbitrary JavaScript that executes in the browser of a staff member who reviews the payment submission. The payload is stored via `portal/lib/paylib.php` and rendered without escaping in `portal/portal_payment.php`. Version 8.0.0.2 fixes the issue.

Weakness: CWE-79

Which versions are affected by CVE-2026-33346?

It affects 1 product.

Products include Open-Emr Openemr.

How do I fix CVE-2026-33346?

No fix has been published for CVE-2026-33346 yet. Limit exposure of the affected software until one is available.

Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.

Is CVE-2026-33346 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-33346 exists.

All Open-Emr Openemr vulnerabilities

Sources

Also known as GHSA-qvf6-6xc6-9qv7.

Is CVE-2026-33346 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free