Alle Sicherheitshinweise

Oviva epa4all-client

TLS-Zertifikatsprüfung in Produktion deaktiviert

Der produktive REST-Service-Einstiegspunkt baut die Konnektor-Verbindung mit .trustAllServers() auf, installiert einen NaiveTrustManager, dessen checkServerTrusted() eine No-op-Methode ist, und deaktiviert die Common-Name-Prüfung. Es gibt keinen anderen Pfad im produktiven Einstiegspunkt. Ein Angreifer auf dem Netzwerkpfad zwischen ePA-Dienst und Konnektor kann ein beliebiges Zertifikat präsentieren und den SOAP-Verkehr im Klartext abfangen.

Verfasst vonChiara Fliegner, Volker Schönefeld, Simon WeberErstveröffentlichung 2026-05-11Vollständige Offenlegung 2026-05-28
SchweregradHochCVSS 8.1CVSS-3.1-VektorAV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NCWECWE-295 (Improper Certificate Validation)ProduktOviva epa4all-clientBetroffene VersionenAlle Versionen vor 1.2.2Behoben in1.2.2 (enthält Pull Request #36)CVECVE-2026-45574GHSAGHSA-5hhf-xmfx-4vvr

Beschreibung

buildFactory() wählt den Trust-all-Pfad ohne Bedingung oder Konfigurationsschalter:

Main.java:125-131

private KonnektorConnectionFactory buildFactory(Config cfg) {
return KonnektorConnectionFactoryBuilder.newBuilder()
.clientKeys(cfg.clientKeys())
.konnektorUri(cfg.konnektorUri())
.proxyServer(cfg.proxyAddress(), cfg.proxyPort())
.trustAllServers() // currently we don't validate the server's certificate
.build();
}

View source →

.trustAllServers() installiert NaiveTrustManager, dessen checkServerTrusted() eine leere Methode ist, die jedes Zertifikat akzeptiert:

NaiveTrustManager.java:8-28

public class NaiveTrustManager implements X509TrustManager {
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
// we're naive, let's just trust everything
}
}

View source →

Auch die Hostname-Prüfung ist abgeschaltet, in KonnektorConnectionFactoryImpl.java:158 (tlsParams.setDisableCNCheck(true)). Die Builder-Methode hinter .trustAllServers() trägt ein /** DO NOT USE IN PRODUCTION! */-Javadoc, sodass der produktive Einstiegspunkt den Trust-all-Manager über eine ausdrücklich nicht für die Produktion vorgesehene Methode erreicht, ohne alternativen Pfad im geprüften Code.

Auswirkung

  • Ein Angreifer im Netzwerksegment zwischen ePA-Dienst und Konnektor (dem LAN der Gesundheitseinrichtung, einem VPN-Transit-Hop oder TI-Netzwerkinfrastruktur) präsentiert ein selbstsigniertes Zertifikat für einen beliebigen Hostnamen; der Client akzeptiert es und die Verbindung kommt zustande.
  • Der abgefangene SOAP-Austausch enthält Versichertenkennungen (KVNR), SMC-B-Kartenoperationen (Authentifizierung und Signatur), Dokumenteninhalte und Credential-Austausch. Der Angreifer kann all dies mitlesen und manipulieren.

Abhilfe

Aktualisieren Sie epa4all-client auf 1.2.2 oder höher. Der Fix ersetzt .trustAllServers() durch einen korrekt konfigurierten TrustManager, der das Zertifikat des Konnektors prüft, und entfernt den Hostname-Check-Override setDisableCNCheck(true). Das Konnektor-Zertifikat muss gegen den passenden Trust-Anchor (die CA des Konnektors, die betreiberspezifisch sein kann) bei aktivierter Hostname-Prüfung validiert werden; nicht allein auf den System-Standard-Truststore zurückfallen.

Checkliste für Betreiber

  • epa4all-client auf 1.2.2 oder höher aktualisieren.

    Alle Versionen vor 1.2.2 sind betroffen. Der Fix ist Pull Request #36.

  • Prüfen, dass trustAllServers() aus dem Produktionspfad entfernt ist.

    Stellen Sie sicher, dass der produktive Einstiegspunkt .trustAllServers() nicht mehr aufruft und kein NaiveTrustManager installiert wird. Die dahinterliegende Methode ist im Javadoc als nicht produktionstauglich markiert.

  • Sicherstellen, dass die Hostname-Prüfung aktiv ist.

    Prüfen Sie, dass setDisableCNCheck(true) entfernt ist, sodass CN/SAN des Konnektor-Zertifikats dem erwarteten Hostnamen entsprechen müssen.

  • Gegen den korrekten Trust-Anchor validieren.

    Das Konnektor-Zertifikat muss auf seine passende CA zurückführen. Binden Sie diesen Truststore an die Verbindung, statt die Prüfung zu deaktivieren; ein selbstsigniertes oder betreiberspezifisches Konnektor-Zertifikat wird mit einem dedizierten Truststore behandelt, nicht mit einem Trust-all-Manager.

Bewertung im Detail

AV:ADer Angreifer muss im Netzwerksegment zwischen ePA-Dienst und Konnektor sitzen, einer Position im Nachbarnetz wie dem Einrichtungs-LAN oder einem VPN-Transit-Hop.AC:LJedes selbstsignierte Zertifikat wird akzeptiert; keine Zeit- oder Umgebungsbedingungen.PR:NAußer der Netzwerkposition werden keine Credentials benötigt.UI:NDer REST-Service öffnet die Konnektor-Verbindung selbstständig; keine Nutzerinteraktion.S:UDie Auswirkung ist auf den SOAP-Verkehr zwischen Dienst und Konnektor beschränkt.C:HKlartext-Zugriff auf KVNRs, SMC-B-Operationen, Dokumenteninhalte und Credentials auf der abgefangenen Verbindung.I:HDer Angreifer kann SOAP-Requests und -Responses in beide Richtungen verändern, einschließlich Signaturoperationen und Dokumenteninhalten.A:NKeine Auswirkung auf die Verfügbarkeit.

Referenzen

So können wir helfen

Wer wir sind

Die Sicherheitsforscher hinter diesem Sicherheitshinweis.

Dr. Simon Weber Profile

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
Volker Schönefeld Profile

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.