med-united epa4all
TLS-Zertifikatsprüfung deaktiviert
SSLUtils.initSSLContext() installiert einen Trust-all-X509TrustManager, dessen checkServerTrusted() leer ist, und deaktiviert die Hostname-Prüfung JVM-weit. Kein Konfigurationsschalter aktiviert die Prüfung wieder, sodass ein Angreifer im Netzwerkpfad zwischen epa4all und seinen Backends (dem ePA-Aktensystem, dem IDP oder dem Konnektor) ein beliebiges Zertifikat präsentieren und den Verkehr abfangen kann.
Beschreibung
SSLUtils.initSSLContext() installiert den Trust-all-Kontext, aktiviert die externe DTD-Auflösung über alle XML-Parser hinweg und deaktiviert die Hostname-Prüfung für den JDK-HTTP-Client:
SSLUtils.java:52-55
sslContext.init(keyManagerFactory.getKeyManagers(), getFakeTrustManagers(), null);
System.setProperty("javax.xml.accessExternalDTD", "all");System.setProperty("jdk.internal.httpclient.disableHostnameVerification", "true");getFakeTrustManagers() liefert einen X509TrustManager, dessen checkServerTrusted() und checkClientTrusted() leere Methoden sind und dessen getAcceptedIssuers() leer ist, sodass jedes Zertifikat akzeptiert wird:
SSLUtils.java:71-85
public static TrustManager[] getFakeTrustManagers() { return new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {} @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {} @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }};}Die CXF-HTTP-Transportschicht wendet denselben Trust-all-Kontext über ClientFactory an (tlsParams.setSslContext(createFakeSSLContext())), und ServicePortProvider schaltet zusätzlich die Common-Name-Prüfung ab (tlsParams.setDisableCNCheck(true)) und installiert einen permissiven Hostname-Verifier (hostnameVerifier((h, s) -> true)). Das Abschalten der CN-Prüfung gilt unabhängig davon, ob der zertifikats- oder der nicht-zertifikatsbasierte Authentifizierungspfad gewählt wird.
Dies ist die Transportschicht-Hälfte einer zweischichtigen Lücke: Auch die Anwendungsschicht authentifiziert den VAU-Server nicht (siehe med-united: VAU-Server-Authentifizierungs-Bypass in epa4all). Beide sind unabhängig; bei deaktivierter TLS-Prüfung gibt es nichts, worauf man zurückfallen könnte, und selbst bei wiederhergestellter Prüfung benötigt der VAU-Server weiterhin eine Authentifizierung auf Anwendungsebene.
Auswirkung
- Ein Angreifer im Netzwerkpfad zwischen epa4all und einem Backend (dem ePA-Aktensystem, dem IDP oder dem Konnektor) terminiert die TLS-Verbindung mit einem beliebigen Zertifikat, auch einem selbstsignierten, und leitet den Verkehr weiter. Die Verbindung kommt zustande, weil keine Zertifikats- oder Hostname-Prüfung sie ablehnt.
- Der abgefangene Verkehr enthält Versichertenkennungen, Dokumenteninhalte, IDP-Credential-Austausch und SMC-B-Kartenoperationen. Der Angreifer kann all dies mitlesen und verändern. Werden der IDP-Credential-Austausch oder die SMC-B-Operationen abgegriffen, reicht das über die zum Zeitpunkt verarbeitete Betroffene hinaus auf jede Betroffene, für die die abgefangene SMC-B-Karte tätig werden kann.
- Im produktiven Bereitstellungsmodell passt das Angreifermodell ins Praxisnetz: epa4all läuft als On-Premise-Container in einer Arztpraxis, ist aus dem lokalen Netz erreichbar und baut ausgehende Verbindungen zur gematik-Infrastruktur auf.
Abhilfe
Aktualisieren Sie auf einen Build vom 20.05.2026 oder später, der die Zertifikats- und Hostname-Prüfung wiederherstellt und die gematik TI-PKI über einen Telematik-TSL-basierten Keystore verankert. Für betroffene Builds existiert kein Workaround. Das alleinige Wiederherstellen des JVM-Standard-Truststores reicht jedoch nicht aus: Das ePA-Aktensystem, der VAU-Proxy und der IDP präsentieren Zertifikate, die in der gematik TI-PKI wurzeln (etwa GEM.RCA-X), die nicht in der Standard-Mozilla-Root-Liste enthalten ist. Eine Standard-Trust-Konfiguration würde öffentlich ausgestellte Zertifikate akzeptieren und dabei den legitimen gematik-Ursprung nicht authentifizieren; die Trust-Anchors müssen daher die veröffentlichten TI-PKI-Roots sein, bei aktivierter Hostname-Prüfung. Kombinieren Sie diesen Fix mit med-united: VAU-Server-Authentifizierungs-Bypass; beide sind erforderlich.
Checkliste für Betreiber
Auf den Build vom 20.05.2026 oder später aktualisieren.
Alle 1.0.0-SNAPSHOT-Builds vor diesem Datum sind betroffen. Der Fix stellt die Zertifikats- und Hostname-Prüfung wieder her und ergänzt den Telematik-TSL-Keystore.
Prüfen, dass die Trust-Anchors die TI-PKI-Roots sind, nicht der System-Standard.
Die gematik-Backends präsentieren Zertifikate, die in der TI-PKI wurzeln (GEM.RCA-X), die der Standard-JVM-/Mozilla-Truststore nicht enthält. Binden Sie einen dedizierten Truststore aus den veröffentlichten gematik-Root-CAs an den CXF-/WebClient-Transport für diese Hosts und lassen Sie die Hostname-Prüfung aktiviert.
Sicherstellen, dass kein permissiver Hostname-Verifier verbleibt.
Prüfen Sie, dass
jdk.internal.httpclient.disableHostnameVerification,tlsParams.setDisableCNCheck(true)und jederhostnameVerifier((h, s) -> true)aus dem Produktionspfad entfernt sind. Ein Truststore mit deaktivierter Hostname-Prüfung lässt sich weiterhin durch jedes Zertifikat umgehen, das auf einen vertrauenswürdigen Root zurückführt.Diesen Fix mit dem VAU-Server-Authentifizierungs-Fix kombinieren.
TLS-Pinning authentifiziert den Transport, nicht die signierten öffentlichen Schlüssel des VAU-Servers. Beide Schichten müssen prüfen; siehe med-united: VAU-Server-Authentifizierungs-Bypass.
Bewertung im Detail
Referenzen
So können wir helfen
Wer wir sind
Die Sicherheitsforscher hinter diesem Sicherheitshinweis.

Dr. rer. nat. Simon Weber
Senior Pentester & MedSec-Forscher
Ich evaluiere Ihr SaMD mit derselben branchenprägenden Sicherheitsexpertise, die ich dem BAK MV für die Überarbeitung des B3S-Standards beigetragen habe.
- Promotion über Krankenhaus-Cybersicherheit
- Kritische Schwachstellen in Krankenhaussystemen gefunden
- Alumni der THB MedSec-Forschungsgruppe
- gematik Security Hero

Dipl.-Inf. Volker Schönefeld
Senior Application Security Expert
Als ehemaliger CTO und Entwickler, der zum Pentester wurde, arbeite ich mit Ihrem Team zusammen, um Schwachstellen aufzudecken und Lösungen zu finden, die zu Ihrer Architektur passen.
- 20+ Jahre als CTO, 50+ Mio. App-Downloads
- Architektur und Absicherung großer IoT-Flotten
- Certified Web Exploitation Specialist
- gematik Security Hero
Penetrationstest gesucht?
Machine Spirits ist spezialisiert auf Sicherheitsbewertungen für Medizinprodukte und Gesundheits-IT. Von MDR-Penetrationstests bis C5-Cloud-Compliance helfen wir MedTech-Unternehmen, regulatorische Anforderungen zu erfüllen.
