In strongSwan, dem VPN-Paket auf Basis des IPSec-Protokolls, das in Linux, Android, FreeBSD und macOS verwendet wird, wurde eine Schwachstelle (CVE-2023-41913) entdeckt, die für die Remote-Ausführung von Angreifer-Code ausgenutzt werden kann. Die Schwachstelle resultiert aus einem Fehler im charon-tkm-Prozess mit der Implementierung des Schlüsselvereinbarungsprotokolls (IKE) basierend auf TKMv2 (Trusted Key Manager), was zu einem Pufferüberlauf bei der Verarbeitung speziell gestalteter DH (Diffie-Hellman)-Schemawerte führt. Die Schwachstelle tritt nur in Systemen auf, die charon-tkm verwenden, und in strongSwan-Versionen ab 5.3.0. Das Problem wurde im Update strongSwan 5.9.12 behoben. Für die Behebung der Schwachstelle sind auch Patches für die Versionen ab 5.3.x verfügbar.
Der Fehler wird durch das Fehlen einer Größenprüfung für öffentliche Diffie-Hellman-Werte vor deren Kopierung in einen Puffer fester Größe im Stack verursacht. Der Pufferüberlauf kann durch das Senden einer speziell gestalteten IKE_SA_INIT-Nachricht initiiert werden, die ohne Authentifizierung verarbeitet wird. In älteren Versionen von strongSwan erfolgte die Größenprüfung im KE payload (Key Exchange)-Handler, aber in Version 5.3.0 wurden Änderungen vorgenommen, die die Prüfung öffentlicher Werte auf die Seite des DH (Diffie-Hellman)-Protokolls verlagerten und Typfunktionen hinzufügten, um die Validierung bekannter DH-Gruppen zu erleichtern. 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 unverifizierte Werte in der Funktion memcpy() landeten, die bis zu 10.000 Bytes an Daten in einen 512-Byte-Puffer schreiben konnten.
Quelle: opennet.ru
