In strongSwan, einem VPN-Paket, das auf dem IPSec-Protokoll basiert und unter Linux, Android, FreeBSD und macOS verwendet wird, wurde eine Sicherheitsanfälligkeit (CVE-2023-41913) entdeckt, die für die Remote-Ausführung von Code durch Angreifer genutzt werden kann. Die Sicherheitsanfälligkeit resultiert aus einem Fehler im charon-tkm Prozess mit der Implementierung des Schlüsselaustauschprotokolls (IKE) auf Basis von TKMv2 (Trusted Key Manager), was zu einem Pufferüberlauf bei der Verarbeitung speziell gestalteter DH (Diffie–Hellman)-Werte führt. Die Sicherheitsanfälligkeit tritt nur in Systemen auf, die charon-tkm verwenden und in Versionen von strongSwan ab 5.3.0. Das Problem wurde mit dem Update strongSwan 5.9.12 behoben. Für das Sicherstellen der Sicherheitsanfälligkeit wurden auch Patches für die Versionen ab 5.3.x vorbereitet.
Der Fehler entsteht durch das Fehlen einer Größenprüfung der öffentlichen Diffie-Hellman-Werte, bevor diese in einen Puffer fester Größe im Stack kopiert werden. Der Pufferüberlauf kann durch das Senden einer speziell formatierten IKE_SA_INIT-Nachricht ausgelöst werden, die ohne Authentifizierung verarbeitet wird. In älteren Versionen von strongSwan wurde die Größenprüfung im KE payload (Key Exchange) Handler durchgeführt, aber in Version 5.3.0 wurden Änderungen eingeführt, die die Größenprüfung der öffentlichen Werte in den Handler des DH (Diffie-Hellman)-Protokolls verlagerten und generische Funktionen für die vereinfachte Prüfung der Gültigkeit bekannter DH-Gruppen hinzufügten. Aus Versehen wurden die neuen Prüfungsfunktionen im charon-tkm Prozess, der als Proxy zwischen dem IKE-Prozess und TKM (Trusted Key Manager) fungiert, nicht hinzugefügt, was dazu führte, dass unvalidierte Werte in der Funktion memcpy() gelangen konnten, die es ermöglichten, bis zu 10.000 Byte Daten in einen 512-Byte-Puffer zu schreiben.
Quelle: opennet.ru
