I strongSwan, VPN-pakken baseret på IPSec-protokollen, der anvendes på Linux, Android, FreeBSD og macOS, er der opdaget en sårbarhed (CVE-2023-41913), som kan udnyttes til at udføre ondsindet kode eksternt. Sårbarheden skyldes en fejl i charon-tkm-processen med implementeringen af nøgleudvekslingsprotokollen (IKE) baseret på TKMv2 (Trusted Key Manager), som fører til buffer-overløb ved behandling af specielt formaterede værdier fra DH-skematik (Diffie–Hellman). Sårbarheden optræder kun i systemer, der bruger charon-tkm og i versioner af strongSwan fra 5.3.0 og frem. Problemet er blevet løst i opdateringen strongSwan 5.9.12. Der er også forberedt patches til at rette sårbarheden i versioner fra 5.3.x.
Fejlen skyldes mangel på kontrol af størrelsen på de offentlige Diffie-Hellman-værdier, før de kopieres til en buffer med fast størrelse på stakken. Overløbet kan initieres ved at sende en specielt formateret IKE_SA_INIT-besked, der behandles uden godkendelse. I ældre versioner af strongSwan blev størrelseskontrollen udført i KE payload-behandleren (Key Exchange), men i version 5.3.0 blev der tilføjet ændringer, der flyttede kontrol af de offentlige værdier til siden af DH-protokolbehandleren (Diffie-Hellman) og tilføjede standardfunktioner for at forenkle kontrol af korrektheden af kendte DH-grupper. Uheldigvis blev de nye kontrolfunktioner glemt i charon-tkm-processen, som fungerer som en proxy mellem IKE-processen og TKM (Trusted Key Manager), hvilket resulterede i, at ucheckede værdier kom ind i memcpy()-funktionen, hvilket tillod at skrive op til 10.000 bytes data i en 512-byte buffer.
Kilde: opennet.ru
