Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 13 Nov 2009 11:57:11 +0100
From: Marcus Meissner <meissner@...e.de>
To: oss-security@...ts.openwall.com
Cc: "Steven M. Christey" <coley@...us.mitre.org>
Subject: Re: CVE request: kernel: bad permissions on megaraid_sas sysfs files

On Fri, Nov 13, 2009 at 02:39:24PM +0800, Eugene Teo wrote:
> The megaraid_sas driver exposes a number of driver attributes in sysfs. 
> Many of these are read-only, just export information from the driver and 
> are world-readable.
> 
> A couple of attributes are writable and may be used to change the 
> behaviour of the driver (e.g. setting debug logging levels, selecting 
> poll vs. interrupt I/O mode etc).
> 
> Some of these writable attributes are mistakenly created with 
> world-writable permissions, e.g. dbg_lvl and poll_mode_io.
> 
> This would allow an unprivileged user to affect kernel driver behaviour 
> and logging level.
> 
> Upstream made the dbd_lvl permissions more restrictive:
> http://git.kernel.org/linus/66dca9b8c50b5e59d3bea8b21cee5c6dae6c9c46
> 
> The poll_mode_io pseudofile still has world-writable permissions 
> upstream. I'm getting my colleague to submit a patch.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=526068

It seems you can set poll_mode_io multiple times to the full integer range,
(like to 1 , 2 , 3 etc.) and it will reinitialize its timers everytime
via init_timer() and add_timer().

This will corrupt the timer chain (I think) by setting entry.next = NULL
in init_timer().

It should only accept a boolean value. :/

Ciao, Marcus

Powered by blists - more mailing lists

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

Powered by Openwall GNU/*/Linux - Powered by OpenVZ