PatchDay Alert
Analysis · 5 min read · 917 words By The Commentary Desk · Commentary

The most dangerous server in the hospital is the one nobody can name

Mirth Connect moves patient records between systems and runs with high privileges, and a lot of installs sit on the open internet. CVE-2023-43208 is an unauthenticated RCE in it, and it's a patch bypass: the first fix used a denylist, and a researcher walked around it.

The most dangerous server in the hospital is the one nobody can name

Ask a hospital IT team to list their crown-jewel servers and you’ll hear about the EHR, the imaging archive, the domain controllers. You probably won’t hear “Mirth Connect,” because integration middleware is invisible by design. It’s the plumbing that translates and shuttles HL7 and XML messages between clinical systems, it works quietly for years, and it tends to be installed once and never thought about again. That’s exactly what makes CVE-2023-43208 dangerous: an unauthenticated remote code execution bug, CVSS 9.8, in a box that handles a continuous stream of protected health information and runs with the privileges of its service account, which is frequently SYSTEM or root.

What the bug is

Mirth Connect, from NextGen Healthcare, exposes an API that deserializes incoming data. The vulnerable versions did so unsafely: an unauthenticated attacker sends a crafted XML payload, the server unmarshals it through XStream without validating what it’s instantiating, and the payload executes arbitrary Java code as the Mirth service (CWE-502, deserialization of untrusted data). No credentials, no user interaction. Horizon3.ai, which published the writeup, noted roughly 1,300 internet-facing Mirth installs at the time of disclosure in October 2023. CISA added it to the Known Exploited Vulnerabilities catalog on May 20, 2024, with a June 10 deadline and the ransomware-use flag set.

For a healthcare target, the impact stacks badly. The server processes PHI, so a compromise is a data-breach and HIPAA event on its own. It sits in the middle of clinical data flows, so it’s a natural pivot deeper into the network. And it’s a ransomware prize, because healthcare is a sector that pays and where downtime has patient-safety consequences. “Integration plumbing” turns out to be one of the higher-consequence boxes in the building.

The part that should bother the vendor

CVE-2023-43208 is not the first version of this bug. It’s a patch bypass. The original deserialization flaw, found by IHTeam, was CVE-2023-37679, and the fix for it used a denylist: a set of known-dangerous classes the deserializer would refuse to instantiate. Horizon3 looked at that fix, found a gadget chain the denylist didn’t cover, and demonstrated that the “patched” software was still exploitable.

This is the predictable failure mode of denylist security, and it’s worth dwelling on because the lesson generalizes far past Mirth. A denylist tries to enumerate everything bad. It’s a bet that the defender thought of every dangerous class, every gadget chain, every bypass, before the attacker did. That bet loses, repeatedly, because the attacker only needs one item the list missed. The durable fix is the inverse: an allowlist that permits only the specific, known-safe classes the application actually needs, and rejects everything else by default. Version 4.4.1 of Mirth Connect did exactly that, replacing the denylist with an allowlist. The right architecture was available the whole time; the first patch just picked the wrong one, and shipped a fix that an afternoon of research undid.

If you write code that deserializes untrusted input, take this as the cheap version of the lesson: default-deny, allow the known-good, and never try to out-enumerate an attacker’s gadget collection.

What to do

  • Upgrade to Mirth Connect 4.4.1 or later. That’s the version with the allowlist, and it’s the only complete fix. Anything earlier is exploitable, including installs that took the original CVE-2023-37679 patch and were told they were covered.
  • Get it off the internet. There is almost never a legitimate reason for a clinical integration engine to be directly reachable from the open internet. Put it behind VPN or strict network controls. With around 1,300 exposed instances at disclosure, plenty of organizations had this on a public IP without a deliberate decision to.
  • Lower the service privileges. If Mirth is running as SYSTEM or root, an RCE owns the host outright. Run it as a dedicated least-privilege account so a future bug in it, and there will be one, costs less.
  • Assume breach if you ran an exposed, unpatched instance. Exploit code has been public since 2023 and the bug is on the KEV ransomware list. If your install was reachable and behind on patches, investigate it as a potential intrusion: check for unexpected child processes of the Mirth service, web shells, and outbound connections, and treat the PHI it handled as potentially exposed for breach-notification purposes.
  • Inventory your middleware generally. Mirth is one example of a category, the quiet integration and automation servers that run with high privileges, touch sensitive data, and fall outside the patch cadence everyone applies to the “important” systems. Find yours before someone else does.

The uncomfortable truth here isn’t really about one CVE. It’s that the systems most likely to be unmanaged are often the ones with the most access, because access is why they were installed and being forgotten is what middleware does best. A clinical integration engine has a copy of everything flowing through it and a service account that can reach the systems on either end. That deserves the same patch discipline and the same network isolation you’d never question for the EHR itself. Name your plumbing, put it on the patch list, and take it off the internet, before it’s the line item in a breach report that everyone suddenly remembers existed.

Sources

Share

Related field notes

One email, every weekday morning.

You're in. Check your inbox.

Get the digest

Free. Weekday mornings. Plain English CVE triage.

Check your inbox to confirm.