StrongSwan IPsec 中的漏洞导致远程代码执行

StrongSwan 是一种在 Linux、Android、FreeBSD 和 macOS 上使用的基于 IPSec 的 VPN 软件包,存在一个漏洞 (CVE-2023-41913),攻击者可利用该漏洞执行远程代码。 该漏洞是由于 Charon-tkm 进程及其密钥交换 (IKE) 协议的 TKMv2(可信密钥管理器)实现中的错误导致的,导致在处理特殊格式的 DH (Diffie–Hellman) 方案值时出现缓冲区溢出。 该漏洞仅出现在使用 Charon-tkm 和 StrongSwan 版本(从 5.3.0 开始)的系统上。 该问题已在 StrongSwan 5.9.12 更新中修复。 为了修复5.3.x开始的分支中的漏洞,还准备了补丁。

该错误是由于在将公共 Diffie-Hellman 值复制到堆栈上的固定大小缓冲区之前未检查其大小而导致的。 可以通过发送未经身份验证而处理的特制 IKE_SA_INIT 消息来发起溢出。 在旧版本的 StrongSwan 中,大小检查是在 KE 负载处理程序(密钥交换)中进行的,但在 5.3.0 版本中添加了更改,将公共值的检查移至 DH 协议处理程序一侧( Diffie-Hellman)并添加了通用函数来简化检查已知组的有效性 D.H. 由于疏忽,他们忘记向 Charon-tkm 进程添加新的检查函数,该进程充当 IKE 进程和 TKM(可信密钥管理器)之间的代理,因此 memcpy() 函数包含未经检查的值​​允许将最多 512 字节写入 10000 字节的缓冲区数据。

来源: opennet.ru

添加评论