漏洞关键信息 漏洞标题 IPv4-mapped IPv6 (::ffff:0:0/96) bypasses denied-peer-ip ACL (not covered by CVE-2020-26262 fix) 漏洞详情 受影响版本: 4.8.0 修补版本: 无 漏洞详情: - Coturn通常配置为通过“denied-peer-ip”和/或默认回环限制来阻止回环和内部范围。 - CVE-2020-26262解决了仅涉及"0.0.0.0"和"::1"以及"::"的绕过问题,但未涵盖IPv4映射的IPv6。 - 使用"CreatePermission"或"ChannelBind"请求与"XOR-PEER-ADDRESS"值为"::ffff:127.0.0.1"时,即使"127.0.0.0/8"被"denied-peer-ip"阻止,也会收到成功的响应。 - 问题的根本原因是"src/client/ns_turn_ioaddr.c"中的三个函数没有检查"IN6_IS_ADDR_V4MAPPED"。 影响 通过使用"::ffff:"作为对等地址,恶意用户可以绕过任何IPv4范围的"denied-peer-ip"规则。 这包括"::ffff:127.0.0.1"、"::ffff:169.254.169.254"以及RFC1918范围等。 在Linux上,当中继套接字绑定到特定IPv6地址时,到v4映射目的地的数据中继会因"ENETUNREACH"失败。 如何重现问题 1. 运行coturn 4.8.0并设置加固配置。 2. 运行PoC(执行IPv4和IPv6分配,然后测试原生IPv4与"::ffff:"对等)。 解决方案建议 在验证"good_peer_addr()"中的对等地址时,检测"IN6_IS_ADDR_V4MAPPED"并提取嵌入的IPv4,然后在应用回环/零/范围检查之前提取它。 CVE 请求 如果确认此问题并向GitHub Security Advisory发布时,请请求CVE ID。