Alle Sicherheitshinweise

gematik Authenticator

Remote Code Execution über eine präparierte Keychain-Datei

Auf macOS interpoliert der gematik Authenticator beim Aufbau seines TLS-Truststores Keychain-Dateipfade in ein Shell-Kommando. Eine .keychain-db-Datei, deren Name ein Shell-Kommando enthält, führt dieses beim nächsten Start der Anwendung im Prozess des Authenticators aus.

Verfasst vonChiara Fliegner, Volker Schönefeld, Simon WeberErstveröffentlichung 2026-03-26Vollständige Offenlegung 2026-05-21
SchweregradHochCVSS 7.8CVSS-3.1-VektorAV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HCWECWE-78 (OS Command Injection)Produktgematik AuthenticatorBetroffene Versionenv4.12.0 bis v4.15.2 (nur macOS; Windows ist nicht betroffen).Behoben inv4.16.0CVECVE-2026-33874GHSAGHSA-mjgm-7hwc-qqcr

Beschreibung

Auf macOS baut der Authenticator seinen TLS-Truststore auf, indem er die System-Keychains liest. getMacOSCertificates() führt security list-keychains aus und interpoliert jeden zurückgegebenen Keychain-Pfad in ein zweites Shell-Kommando. Die einzige Bereinigung entfernt doppelte Anführungszeichen, sodass Shell-Metazeichen (;, Backticks, $(), |, &) erhalten bleiben:

Keychain-Pfad wird in ein Shell-Kommando interpoliert

const keychains = execSync('security list-keychains')
.toString()
.split('\n')
.map((kc) => kc.trim().replace(/"/g, '')); // strips only double quotes
keychains.forEach((keychain) => {
const rawCerts = execSync(`security find-certificate -a -p ${keychain}`).toString();
});

View source →

Das Laden der Zertifikate läuft bei jedem Start als Top-Level-Code in der Preload-Kette, sodass keine Interaktion über das Starten der Anwendung hinaus nötig ist, um es auszulösen. Ein Angreifer stellt eine .keychain-db-Datei zu, deren Dateiname ein Shell-Kommando enthält. Auf macOS fügt das Öffnen einer solchen Datei sie der Keychain-Suchliste hinzu, und das Download-Flag com.apple.quarantine wird für diesen Dateityp nicht ausgewertet. Beim nächsten Start wird der präparierte Dateiname in das Kommando interpoliert und die Shell wertet den eingebetteten Payload aus.

Auswirkung

  • Ausführung beliebiger Kommandos im Electron-Hauptprozess des Authenticators mit den Rechten des Benutzers, mit Zugriff auf den Credential-Store des Betriebssystems (IDP-Token, Konnektor-TLS-Client-Zertifikate), das Dateisystem und Umgebungsvariablen.
  • Die manipulierte Keychain wird bei jedem Start ausgelöst und übersteht Neustarts und Updates, bis sie aus der Schlüsselbundverwaltung entfernt wird.
  • Die Zustellung erfolgt per Phishing (eine .keychain-db-Datei als E-Mail-Anhang); der Download lässt sich durch Verkettung mit dem Deep-Link-Hijack so darstellen, als stamme er von einer gematik-Domain.

Abhilfe

Aktualisieren Sie auf v4.16.0 oder höher. Ersetzen Sie execSync durch execFileSync('security', [...]), damit Argumente die Shell vollständig umgehen, und weisen Sie als Verteidigung in der Tiefe Keychain-Pfade mit Shell-Metazeichen ($, Backticks, ;, |, & oder Zeilenumbrüche) zurück.

Checkliste für Betreiber

  • Eingesetzte Version prüfen

    Stellen Sie sicher, dass macOS-Arbeitsplätze gematik Authenticator v4.16.0 oder höher ausführen; v4.12.0 bis v4.15.2 sind betroffen. Windows ist nicht betroffen.

  • Vorsicht bei .keychain-db-Anhängen

    Behandeln Sie unaufgefordert zugesandte Keychain-Dateien als nicht vertrauenswürdig. Das Öffnen fügt sie der Keychain-Suchliste hinzu; sie muss nicht aus einer vertrauenswürdigen Quelle stammen, um wirksam zu werden.

Bewertung im Detail

AV:LDie Injektion wird über eine Keychain-Datei ausgelöst, die auf dem lokalen Rechner abgelegt wurde.AC:LKeine besonderen Bedingungen über den präparierten Dateinamen hinaus.PR:NEs sind kein Konto und keine Rechte auf dem Ziel erforderlich.UI:RDie betroffene Person muss die präparierte Datei öffnen und anschließend den Authenticator starten.S:UDie Ausführung bleibt im eigenen Sicherheitskontext des Benutzers.C:HDas eingeschleuste Kommando kann den Credential-Store, Zertifikate und Dateien des Benutzers lesen.I:HEs kann Dateien und Daten verändern, die der Benutzer schreiben darf.A:HEs kann die Umgebung des Benutzers und die Anwendung stören.

Der Schweregrad entspricht dem GHSA-Score des Herstellers (CVSS 7.8). Der Vektor ist lokal (AV:L); die Zustellung per Phishing oder über den verketteten Deep-Link-Hijack ändert den veröffentlichten Score des Herstellers nicht.

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.