+++ This bug was initially created as a clone of Bug #186242 +++ It appears sockaddr_in.sin_zero is not zeroed during certain operations returning IPv4 socket names, namely: - getsockopt(...SO_ORIGINAL_DST...) (2.4 and 2.6) see getorigdst() in net/ipv4/netfilter/ip_conntrack_core.c (+ in net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c in 2.6?!) - getsockname() and getpeername() (and accept()) (2.4 only) see inet_getname() in net/ipv4/af_inet.c and several unitialized bytes of kernel stack (sizeof(sin_zero) == 6 to be precise) leak to the userspace. http://marc.theaimsgroup.com/?l=linux-netdev&m=114148078223594&w=2 A patch has been included in Marcelo's 2.4 tree: http://www.kernel.org/git/?p=linux/kernel/git/marcelo/linux-2.4.git;a=commit;h=09d3b3dcfa80c9094f1748c1be064b9326c9ef2b
Hi, Marcel. Since RHEL-3 was only missing the memset() in getorigdst(), which is the 2nd patch hunk of the upstream commit, I'd guess that only one of the two CVE names are relevant. Could you please update this bug's subject line accordingly so that I'll know which one to list in the U8 advisory? Thanks in advance. -ernie
A fix for this problem has just been committed to the RHEL3 U8 patch pool this evening (in kernel version 2.4.21-40.5.EL).
Adding a couple dozen bugs to CanFix list so I can complete the stupid advisory.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2006-0437.html