From: Chris Wright <chrisw@sous-sol.org>
To: Marcel Holtmann <holtmann@redhat.com>
Cc: Kirill Korotaev <dev@sw.ru>, Solar Designer <solar@openwall.com>, Patrick McHardy <kaber@trash.net>
-Subject: [PATCH] Netfilter: do_add_counters race, possible info leak (CVE-2006-0039)
+Subject: [PATCH] Netfilter: do_add_counters race, possible oops or info leak (CVE-2006-0039)
-Solar Designer found a race condition in do_add_counters(). The beginning of
-paddc is supposed to be the same as tmp which was sanity-checked above, but it
-might not be the same in reality. In case the integer overflow and/or the race
-condition are triggered, paddc->num_counters might not match the allocation size
-for paddc. If the check below (t->private->number != paddc->num_counters)
-nevertheless passes (perhaps this requires the race condition to be triggered),
-IPT_ENTRY_ITERATE() would read kernel memory beyond the allocation size,
-potentially leaking sensitive data (e.g., passwords from host system or from
-another VPS) via counter increments. This requires CAP_NET_ADMIN.
+Solar Designer found a race condition in do_add_counters(). The beginning
+of paddc is supposed to be the same as tmp which was sanity-checked
+above, but it might not be the same in reality. In case the integer
+overflow and/or the race condition are triggered, paddc->num_counters
+might not match the allocation size for paddc. If the check below
+(t->private->number != paddc->num_counters) nevertheless passes (perhaps
+this requires the race condition to be triggered), IPT_ENTRY_ITERATE()
+would read kernel memory beyond the allocation size, potentially causing
+an oops or leaking sensitive data (e.g., passwords from host system or
+from another VPS) via counter increments. This requires CAP_NET_ADMIN.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=191698
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
---
-diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
-index 7d7ab94..12bfc25 100644
net/ipv4/netfilter/arp_tables.c | 2 +-
net/ipv4/netfilter/ip_tables.c | 2 +-
net/ipv6/netfilter/ip6_tables.c | 2 +-