med-united epa4all
VAU-Server-Authentifizierungs-Bypass
epa4all bindet die Referenzimplementierung lib-vau von gematik als Git-Submodul ein und ergänzt darauf keinerlei Prüfung. Der Handshake deserialisiert die Felder signatureEs256, certHash und ocspResponse des Servers, ohne sie zu lesen. Ein Angreifer im Netzwerkpfad zum ePA-Aktensystem kann so eigene Schlüssel unterschieben, den Handshake abschließen und die resultierende Sitzung kontrollieren.
Beschreibung
Mangel 1: fehlende Kapselung. VauClient.receiveMessage2() delegiert direkt an die Referenz-State-Machine, ohne jede Prüfung auf Anwendungsebene:
VauClient.java:127-128
public byte[] receiveMessage2(byte[] message2) { return vauStateMachine.receiveMessage2(message2);}Mangel 2: Referenz-State-Machine prüft nur das Ablaufdatum. Innerhalb der eingebundenen lib-vau ist die einzige Prüfung der signierten öffentlichen Server-Schlüssel ein Vergleich der zeitlichen Gültigkeit; die kryptografische Signatur wird deserialisiert, aber nie gelesen:
VauClientStateMachine.java:104 (eingebundene gematik lib-vau)
VauPublicKeys transferredSignedServerPublicKeyList = signedPublicVauKeys.extractVauKeys();checkCertificateExpired(transferredSignedServerPublicKeyList.getExp());Status der sechs A_24624-01-Prüfungen, die der Client auf den signierten öffentlichen Schlüsseln des Servers durchführen muss:
| # | A_24624-01-Prüfung | Status in epa4all |
|---|---|---|
| 1 | Zertifikatskette zum TI-PKI-Root | Nicht implementiert |
| 2 | OCSP-Antwort gültig und aktuell | Nicht implementiert |
| 3 | Rollen-OID enthält oid_epa_vau | Nicht implementiert |
| 4 | ES256-Signatur auf signed_pub_keys | Nicht implementiert |
| 5 | ECC/Kyber-Schlüsselformat-Prüfung | Implementiert (durch lib-vau) |
| 6 | Ablauf-Prüfung (exp > now) | Implementiert (durch lib-vau) |
Die Felder signatureEs256, certHash und ocspResponse auf SignedPublicVauKeys werden zwar in das Objekt deserialisiert, aber von keinem Prüfpfad in epa4all oder der eingebundenen lib-vau gelesen. Zusammen mit med-united: TLS-Zertifikatsprüfung in epa4all deaktiviert existiert weder auf Transport- noch auf Anwendungsebene eine Authentifizierung des ePA-Backends.
Dieselbe Lücke entstammt dem Upstream der gematik-Referenzimplementierungen; siehe gematik: VAU-Handshake führt nur 2 von 6 vorgeschriebenen Server-Schlüssel-Prüfungen aus für das Grundmuster über die Forks hinweg.
Auswirkung
- Ein netzwerkpositionierter Angreifer zwischen epa4all und dem ePA-Aktensystem fängt den VAU-Handshake ab, liefert selbstsignierte VAU-Public-Keys mit einem selbstsignierten Zertifikat aus, und der Client akzeptiert beides. Der Angreifer leitet dieselben K2-Sitzungsschlüssel ab wie der Client und kontrolliert den resultierenden verschlüsselten Kanal.
- Im produktiven Bereitstellungsmodell passt das Angreifermodell ins Praxisnetz. epa4all wird als On-Premise-Docker-Container (
servicehealtherxgmbh/epa4all) ausgeliefert, der in einer Arztpraxis betrieben wird; der Container ist aus dem lokalen Netz erreichbar und baut die ausgehende Verbindung zum ePA-Backend auf. - Ein MITM, der die Sitzungsschlüssel hält, kann den gesamten inneren HTTP-Verkehr auf dem VAU-Kanal lesen und verändern: Einwilligungsentscheidungen, Medikationsdaten, Dokument-Uploads, Autorisierungs-Token und Anspruchsabfragen. Während eines Testlaufs las ein einzelner Relay die Einwilligungsentscheidungen einer Betroffenen, tauschte auf einer zweiten Antwort Versicherten-ID und Entscheidungswerte aus und schleuste einen dritten Patientendatensatz vollständig ein, alles mit einem selbstsignierten Zertifikat ohne CA-Kette.
Abhilfe
Aktualisieren Sie auf einen Build vom 20.05.2026 oder später. Der Fix des Herstellers ergänzt Zertifikats- und Hostname-Prüfungen für lib-vau sowie einen Keystore auf Basis der Telematik-TSL, sodass die ES256-Signatur auf SignedPublicVauKeys gegen ein vertrauenswürdiges Zertifikat aus der TI-PKI geprüft wird. Für betroffene Builds existiert kein Workaround; ein Pinning auf Transportebene authentifiziert den VAU-Server nicht, und die parallele Schwachstelle med-united: TLS-Zertifikatsprüfung deaktiviert bedeutet, dass es ohnehin kein Transport-Pinning gibt, auf das man sich stützen könnte. Beide Fixes 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 ergänzt den Telematik-TSL-Keystore und hängt die Signaturprüfung auf
SignedPublicVauKeysclientseitig ein.Prüfen, dass die TI-PKI-Root-Anchors zur Laufzeit geladen werden.
Der Standard-JVM-/System-Truststore enthält keine TI-PKI-Roots. Stellen Sie sicher, dass Ihr Deployment sie aus dem TI-Root-CA-Bundle des gemSpec_PKI bezieht und dass der Keystore vor dem ersten VAU-Handshake geladen ist.
Diesen Fix mit dem TLS-Prüfungs-Fix kombinieren.
Auch mit ergänzter VAU-Server-Authentifizierung muss im selben Build die TLS-Prüfung auf den ausgehenden Verbindungen wieder aktiviert werden. Die beiden Fixes sind unabhängig und beide erforderlich; siehe med-united: TLS-Zertifikatsprüfung deaktiviert.
Mit selbstsigniertem Gegenpart testen.
Bauen Sie einen lokalen VAU-Gegenpart, der auf Message 2 mit angreiferkontrollierten öffentlichen Schlüsseln, selbstsigniertem
certund beliebigensignatureEs256-Bytes antwortet. Der Client muss den Handshake ablehnen. Falls nicht, ist der Validator nicht eingehängt.
Bewertung im Detail
Referenzen
- GHSA-vvh7-x6c7-46gh (med-united)
- med-united-epa4all-Repository
- gematik lib-vau (Referenz, eingebunden)
- gemSpec_Krypt A_24624-01 (Client-Prüfung der signierten öffentlichen Server-Schlüssel)
- Verwandt: Deaktivierte TLS-Zertifikatsprüfung
- Verwandter Upstream: VAU-Handshake führt nur 2 von 6 vorgeschriebenen Server-Schlüssel-Prüfungen aus
- Verwandt: ePA-VAU-Client-Sicherheit (Übersicht)
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.
