Schwachstelle in OpenCA ermöglicht Angreifern Erzeugen unautorisierter Zertifikate

Durch eine Cross-Site-Request-Forgery-Schwachstelle können Angreifer auf OpenCA im Kontext eines Administrators zugreifen. Ein inoffizieller Patch soll das Problem beheben.

In Pocket speichern vorlesen Druckansicht 16 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Daniel Bachfeld

Angreifer können damit die Firewall in verwundbaren Routern abschalten oder neue Konten zu Content-Management-Systeme hinzufügen: Cross Site Request Forgery (CSRF) oder kurz Session Riding. Auch die Open-Source-Certification-Authority OpenCA weist in dieser Hinsicht ein Problem auf. Besucht ein CA-Administrator eine manipulierte Webseite, während er das OpenCA-Frontend in einem anderen Browserfenster geöffnet hat, kann ein Angreifer unter Umständen eigene Zertifikate im Kontext des Admins generieren. Alexander Klink weist in einem Fehlerbericht darauf hin, dass OpenCA nur eine einmalige Authentifizierung erfordert und die Session über den gesamten Verlauf nur ein Cookie verwendet.

Da Web-Formulare nicht explizit geschützt seien, könne ein Angreifer etwa bestimmte Requests in Image-Tags einer Webseite einbetten und so über den Browser des Administrators an die CA senden. Einige Beispiele führt Klink in seinem Bericht auf. Zwar erfordere ein Angriff noch, einige Seriennummern zu erraten, dies sei aber in der Regel recht einfach. Betroffen ist OpenCA 0.9.2.5. Ein offizielles Update gibt es nicht, allerdings sollen die Entwickler Anfang Januar einen von Klink entwickelten Patch erhalten haben. Da die Entwickler aber laut Klink seit einiger Zeit nicht mehr reagieren, hat er seinen Bericht nebst Patch nun alleine veröffentlicht. Klink gibt aber zu, dass der Patch nicht ausreichend getestet ist. Anwender sollten ihn also auf keinen Fall einfach so in ein Produktiv-System einspielen.

Der Patch fügt allen internen Links und Formularen ein zusätzliches Token als Parameter hinzu, den der Server aus dem SHA-1-Hash der Session-ID im Cookie bildet. Der Server prüft bei jedem Aufruf, ob der Request den richtigen Token enthält.

Siehe dazu auch:

(dab)