首页 -> 安全研究

安全研究

安全漏洞
Kame的Stack Non-ESP IPV4转发包策略可绕过漏洞

发布日期:2002-03-04
更新日期:2002-03-11

受影响系统:
FreeBSD FreeBSD 4.5
FreeBSD FreeBSD 4.4
FreeBSD FreeBSD 4.3
FreeBSD FreeBSD 4.2
NetBSD NetBSD 1.5.2
NetBSD NetBSD 1.5.1
NetBSD NetBSD 1.5
OpenBSD OpenBSD 2.7
OpenBSD OpenBSD 2.7
OpenBSD OpenBSD 2.6
OpenBSD OpenBSD 2.6
不受影响系统:
OpenBSD OpenBSD 3.0
OpenBSD OpenBSD 2.9
OpenBSD OpenBSD 2.8
描述:
BUGTRAQ  ID: 4224
CVE(CAN) ID: CVE-2002-0414

KAME是一款免费的开放源代码的IPv6和IPSec实现,由KAME项目组发行和维护。

KAME在IPv4的封装安全负载(Encapsulating Security Payload )实现上存在漏洞,可导致转发包策略可绕过。

在某些环境下,KAME没有使用RFC相关协议而自己建立了一套安全实现环境,当IPv4网络在一系统和使用非封装安全负载(ESP)通信阻塞,在安全网关的路由末端之间使用封装安全负载(ESP)时,发送给安全网关的非封装安全负载(ESP)通信会被安全网关转发。这可以允许任意访问网络的攻击者通过安全网关与外界网络通信。必须注意的是本来任意主机通过安全网关的通信会被阻塞,因为路由实现能正确的处理这种通信类型。


<*来源:Greg Troxel (gdt@ir.bbn.com
        Bill Chiarchiaro (wjc@work.cleartech.com
  *>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

Greg Troxel <gdt@ir.bbn.com>提供了第三方补丁程序:

NetBSD netbsd-1-5的补丁程序:

Index: src/sys/netinet/ip_input.c
===================================================================
RCS file: /NETBSD-CVS/netbsd/src/sys/netinet/ip_input.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 ip_input.c
--- src/sys/netinet/ip_input.c 2001/07/05 14:42:54 1.1.1.1
+++ src/sys/netinet/ip_input.c 2002/02/25 01:07:02
@@ -611,6 +611,15 @@
ipstat.ips_cantforward++;
m_freem(m);
} else {
+#ifdef IPSEC
+ /*
+ * Enforce inbound IPsec SPD.
+ */
+ if (ipsec4_in_reject(m, NULL)) {
+ ipsecstat.in_polvio++;
+ goto bad;
+ }
+#endif
/*
* If ip_dst matched any of my address on !IFF_UP interface,
* and there's no IFF_UP interface that matches ip_dst,

FreeBSD RELENG_4的补丁程序:

Index: src/sys/netinet/ip_input.c
===================================================================
RCS file: /FREEBSD-CVS/src/sys/netinet/ip_input.c,v
retrieving revision 1.130.2.31
diff -u -r1.130.2.31 ip_input.c
--- src/sys/netinet/ip_input.c 2001/12/15 01:06:27 1.130.2.31
+++ src/sys/netinet/ip_input.c 2002/02/24 16:10:26
@@ -625,8 +625,18 @@
if (ipforwarding == 0) {
ipstat.ips_cantforward++;
m_freem(m);
- } else
+ } else {
+#ifdef IPSEC
+ /*
+ * Enforce inbound IPsec SPD.
+ */
+ if (ipsec4_in_reject(m, NULL)) {
+ ipsecstat.in_polvio++;
+ goto bad;
+ }
+#endif /* IPSEC */
ip_forward(m, 0);
+ }
#ifdef IPFIREWALL_FORWARD
ip_fw_fwd_addr = NULL;
#endif

厂商补丁:

OpenBSD
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.openbsd.org

浏览次数:3348
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障