Robur 的博客 - MirageVPN 和 OpenVPN

主要观点:在 Robur 实施 OpenVPN™兼容的 MirageVPN 软件时发现两个安全问题 CVE-2024-28882 和 CVE-2024-5594,详细介绍了 OpenVPN 协议中的控制通道消息相关内容及安全漏洞。
关键信息:

  • 控制通道消息:EXITRESTARTHALT用于通知客户端断开连接;PUSH_REQUEST/PUSH_REPLY用于服务器向客户端传递配置选项;AUTH_FAILED(未详细说明)。
  • 漏洞:服务器接收EXIT消息后会重新安排断开连接定时器,导致客户端可通过反复发送EXIT消息无限延迟断开连接;在处理PUSH_REPLY时,buf_parse函数会将 NUL 字节视为分隔符,可导致任意字节被注入为配置指令行。
  • 修复:将数据按 NUL 字节分割以获取控制通道消息,并拒绝包含非法字符的消息,但对于AUTH_FAILED消息易创建无效消息。
    重要细节:
  • OpenVPN 协议通过 TLS 隧道协商密钥材料和配置选项,控制通道消息在单个 TLS 记录帧中发送,以 NUL 字节终止。
  • 客户端可通过管理接口的client-kill命令发送EXIT消息,恶意客户端可利用此延迟断开连接。
  • buf_parse函数的实现细节及在处理PUSH_REPLY时的问题。
  • 漏洞发现过程及相关代码分析,包括对 OpenVPN 源代码的研究和实验。
  • 资金来源及对开源项目的影响。
阅读 10
0 条评论