Уразлівасць у strongSwan IPsec, якая прыводзіць да выдаленага выканання кода

У strongSwan, VPN-пакеце на базе пратаколу IPSec, ужывальным у Linux, Android, FreeBSD і macOS, выяўленая ўразлівасць (CVE-2023-41913), якую можна выкарыстаць для выдаленага выканання кода зламысніка. Уразлівасць выклікана памылкай у працэсе charon-tkm з рэалізацыяй пратакола абмену ключамі (IKE) на базе TKMv2 (Trusted Key Manager), якая прыводзіць да перапаўнення буфера пры апрацоўцы спецыяльна аформленых значэнняў схемы DH (Diffie-Hellman). Уразлівасць выяўляецца толькі ў сістэмах, выкарыстоўвалых charon-tkm і ў выпусках strongSwan, пачынальна з 5.3.0. Праблема ўхіленая ў абнаўленні strongSwan 5.9.12. Для выпраўлення ўразлівасці ў галінках, пачынальна з 5.3.x, таксама падрыхтаваны патчы.

Памылка выклікана адсутнасцю праверкі памеру публічных значэнняў Diffie-Hellman перад іх капіраваннем у буфер фіксаванага памеру ў стэку. Перапаўненне можа быць ініцыявана праз адпраўку спецыяльнага аформленага паведамлення IKE_SA_INIT, апрацоўванага без аўтэнтыфікацыі. У старых версіях strongSwan праверка памеру ажыццяўлялася ў апрацоўшчыку KE payload (Key Exchange), але ў версіі 5.3.0 былі дададзены змены, якія пераносяць праверку публічных значэнняў на бок апрацоўшчыка пратаколу DH (Diffie-Hellman) і якія дадаюць тыпавыя функцыі для спрашчэння праверкі карэктнасці вядомых DH. Па недаглядзе, новыя функцыі праверкі забыліся дадаць у працэс charon-tkm, які працуе як проксі паміж працэсам IKE і TKM (Trusted Key Manager), у выніку чаго ў функцыі memcpy() апынуліся неправераныя значэнні, якія дазваляюць запісаць у 512-байтавы буфер да 10000 байтаў. дадзеных.

Крыніца: opennet.ru

Дадаць каментар