Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4BD65137.5060106@redhat.com>
Date: Tue, 27 Apr 2010 10:51:35 +0800
From: Eugene Teo <eugene@...hat.com>
To: oss-security@...ts.openwall.com
CC: coley@...us.mitre.org
Subject: CVE request - kernel: find_keyring_by_name() can gain the freed keyring

Reported by Toshiyuki Okajima. find_keyring_by_name() can gain the 
keyring which has been already freed. And then, its space (which is 
gained by find_keyring_by_name()) is broken by accessing the freed 
keyring as the available keyring:

1) If the space of the freed keyring is reallocated for other purpose 
(ie. filp SLUB), the data of the filp object may be destroyed by the 
user of the freed keyring. (SLUB configuration can share the freed space 
with other same-size slabs.)

2) If the slab space of the freed keyring is released into the system, 
the system panic may happen because accessing the space of the freed 
keyring causes the page-fault.

Example: (we can easily confirm this problem if CONFIG_SLUB is "y".)
[1] with CONFIG_SLUB_DEBUG_ON
While we are executing my reproducer (which is attached), we can notice 
that the user of the freed keyring breaks its space:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# ./reproducer &
...
# dmesg
...
=============================================================================
BUG key_jar: Poison overwritten
[...]

More info:
http://www.gossamer-threads.com/lists/linux/kernel/1216391
https://patchwork.kernel.org/patch/94038/
https://bugzilla.redhat.com/show_bug.cgi?id=585094

Thanks, Eugene

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.