mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Chris Wright <chrisw@sous-sol.org>
To: linux-kernel@vger.kernel.org, stable@kernel.org,
	Marcel Holtmann <holtmann@redhat.com>
Cc: Justin Forbes <jmforbes@linuxtx.org>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	"Theodore Ts'o" <tytso@mit.edu>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Dave Jones <davej@redhat.com>,
	Chuck Wolber <chuckw@quantumlinux.com>,
	torvalds@osdl.org, akpm@osdl.org, alan@lxorguk.ukuu.org.uk,
	Kirill Korotaev <dev@sw.ru>, Solar Designer <solar@openwall.com>,
	Patrick McHardy <kaber@trash.net>,
	Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 09/22] [PATCH] Netfilter: do_add_counters race, possible oops or info leak (CVE-2006-0039)
Date: Wed, 17 May 2006 00:00:09 -0700	[thread overview]
Message-ID: <20060517221401.062369000@sous-sol.org> (raw)
In-Reply-To: <20060517221312.227391000@sous-sol.org>

[-- Attachment #1: netfilter-do_add_counters-race-possible-info-leak.patch --]
[-- Type: text/plain, Size: 2396 bytes --]

-stable review patch.  If anyone has any objections, please let us know.
------------------

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

Cc: Solar Designer <solar@openwall.com>
Cc: Kirill Korotaev <dev@sw.ru>
Cc: Patrick McHardy <kaber@trash.net>
(chrisw: rebase of Solar's patch to 2.6.16.16)
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---

 net/ipv4/netfilter/arp_tables.c |    2 +-
 net/ipv4/netfilter/ip_tables.c  |    2 +-
 net/ipv6/netfilter/ip6_tables.c |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

--- linux-2.6.16.16.orig/net/ipv4/netfilter/arp_tables.c
+++ linux-2.6.16.16/net/ipv4/netfilter/arp_tables.c
@@ -941,7 +941,7 @@ static int do_add_counters(void __user *
 
 	write_lock_bh(&t->lock);
 	private = t->private;
-	if (private->number != paddc->num_counters) {
+	if (private->number != tmp.num_counters) {
 		ret = -EINVAL;
 		goto unlock_up_free;
 	}
--- linux-2.6.16.16.orig/net/ipv4/netfilter/ip_tables.c
+++ linux-2.6.16.16/net/ipv4/netfilter/ip_tables.c
@@ -1063,7 +1063,7 @@ do_add_counters(void __user *user, unsig
 
 	write_lock_bh(&t->lock);
 	private = t->private;
-	if (private->number != paddc->num_counters) {
+	if (private->number != tmp.num_counters) {
 		ret = -EINVAL;
 		goto unlock_up_free;
 	}
--- linux-2.6.16.16.orig/net/ipv6/netfilter/ip6_tables.c
+++ linux-2.6.16.16/net/ipv6/netfilter/ip6_tables.c
@@ -1120,7 +1120,7 @@ do_add_counters(void __user *user, unsig
 
 	write_lock_bh(&t->lock);
 	private = t->private;
-	if (private->number != paddc->num_counters) {
+	if (private->number != tmp.num_counters) {
 		ret = -EINVAL;
 		goto unlock_up_free;
 	}

--

  parent reply	other threads:[~2006-05-17 22:13 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-17 22:13 [PATCH 00/22] -stable review Chris Wright
2006-05-17  7:00 ` [PATCH 01/22] md: Avoid oops when attempting to fix read errors on raid10 Chris Wright
2006-05-17  7:00 ` [PATCH 02/22] [PATCH] via-rhine: zero pad short packets on Rhine I ethernet cards Chris Wright
2006-05-17  7:00 ` [PATCH 03/22] USB: ub oops in block_uevent Chris Wright
2006-05-17  7:00 ` [PATCH 04/22] [PATCH] fs/locks.c: Fix sys_flock() race Chris Wright
2006-05-17  7:00 ` [PATCH 05/22] [PATCH] smbfs: Fix slab corruption in samba error path Chris Wright
2006-05-17  7:00 ` [PATCH 06/22] [PATCH] fs/compat.c: fix if (a |= b ) typo Chris Wright
2006-05-17  7:00 ` [PATCH 07/22] [PATCH] smbus unhiding kills thermal management Chris Wright
2006-05-18 20:53   ` Jean Delvare
2006-05-18 21:11     ` [stable] " Greg KH
2006-05-17  7:00 ` [PATCH 08/22] [PATCH] scx200_acb: Fix resource name use after free Chris Wright
2006-05-17  7:00 ` Chris Wright [this message]
2006-05-17  7:00 ` [PATCH 10/22] [PATCH] TG3: ethtool always report port is TP Chris Wright
2006-05-17  7:00 ` [PATCH 11/22] [PATCH] selinux: check for failed kmalloc in security_sid_to_context() Chris Wright
2006-05-17  7:00 ` [PATCH 12/22] PCI: correctly allocate return buffers for osc calls Chris Wright
2006-05-17  7:00 ` [PATCH 13/22] [PATCH] [BLOCK] limit request_fn recursion Chris Wright
2006-05-17  7:00 ` [PATCH 14/22] [PATCH] [Cardman 40x0] Fix udev device creation Chris Wright
2006-05-17 22:42   ` Harald Welte
2006-05-17  7:00 ` [PATCH 15/22] [PATCH] PCI quirk: VIA IRQ fixup should only run for VIA southbridges Chris Wright
2006-05-17  7:00 ` [PATCH 16/22] [PATCH] VIA quirk fixup, additional PCI IDs Chris Wright
2006-05-17  7:00 ` [PATCH 17/22] [PATCH] i386/x86_64: Force pci=noacpi on HP XW9300 Chris Wright
2006-05-17 22:16   ` Andi Kleen
2006-05-17 22:25     ` Greg KH
2006-05-17 22:36     ` Chris Wright
2006-05-17  7:00 ` [PATCH 18/22] [PATCH] Remove cond_resched in gather_stats() Chris Wright
2006-05-17  7:00 ` [PATCH 19/22] [PATCH] add migratepage address space op to shmem Chris Wright
2006-05-17  7:00 ` [PATCH 20/22] [PATCH] page migration: Fix fallback behavior for dirty pages Chris Wright
2006-05-17  7:00 ` [PATCH 21/22] [PATCH] Fix ptrace_attach()/ptrace_traceme()/de_thread() race Chris Wright
2006-05-17  7:00 ` [PATCH 22/22] [PATCH] ptrace_attach: fix possible deadlock schenario with irqs Chris Wright
2006-05-17 22:23 ` [PATCH 00/22] -stable review Linus Torvalds
2006-05-17 22:36   ` Chris Wright
2006-05-17 22:41     ` [stable] " Greg KH
2006-05-18  9:15       ` Michael Tokarev
2006-05-18 17:40         ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060517221401.062369000@sous-sol.org \
    --to=chrisw@sous-sol.org \
    --cc=akpm@osdl.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=chuckw@quantumlinux.com \
    --cc=davej@redhat.com \
    --cc=dev@sw.ru \
    --cc=gregkh@suse.de \
    --cc=holtmann@redhat.com \
    --cc=jmforbes@linuxtx.org \
    --cc=kaber@trash.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rdunlap@xenotime.net \
    --cc=solar@openwall.com \
    --cc=stable@kernel.org \
    --cc=torvalds@osdl.org \
    --cc=tytso@mit.edu \
    --cc=zwane@arm.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome