public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [CHECKER]  Help Needed!
@ 2003-04-21  9:23 Manfred Spraul
  2003-04-21 19:15 ` Junfeng Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Manfred Spraul @ 2003-04-21  9:23 UTC (permalink / raw)
  To: Junfeng Yang; +Cc: linux-kernel

Junfeng wrote:

>It seems to us that create_dev can only be called at boot time (the
>"__init" attribute), so devfs_name must be an untainted kernel pointer.
>The warning on line 437 isn't a real error.
>
>However, this pointer is finally passed into strncpy_from_user through the
>call chain [ sys_symlink (devfs_name, name) --> getname (oldname) -->
>do_getname(filename, _) --> strncpy_from_user (_, filename, _)].  Is it
>okay to call *_from_user functions with the second arguements untainted?
>What will access_ok(VERIFY_READ, src, 1) return?
>  
>
The copy_{to,from}_user functions can access either user or kernel space.
after set_fs(KERNEL_DS), they access kernel space, after 
set_fs(USER_DS), they access user space.

The initial boot thread starts with set_fs(KERNEL_DS), and is switched 
back to set_fs(USER_DS) in search_binary_handler (fs/exec.c), called 
during exec of /sbin/init.

--
    Manfred

P.S.: On i386, you can access both kernel and user space after 
set_fs(KERNEL_DS), or if you use __get_user() and bypass access_ok(). 
Thus the __get_user() in arch/i386/kernel/traps.c, function 
show_registers is correct. This is the only instance I'm aware of where 
this is used, and noone else should be doing that. It fails on other 
archs, e.g. on sparc.


^ permalink raw reply	[flat|nested] 6+ messages in thread
* Re: [CHECKER] potential dereference of user pointer errors
@ 2003-03-27 17:10 Chris Wright
  2003-04-21  7:49 ` [CHECKER] Help Needed! Junfeng Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Chris Wright @ 2003-03-27 17:10 UTC (permalink / raw)
  To: Jan Kasprzak; +Cc: Junfeng Yang, linux-kernel, mc

* Jan Kasprzak (kas@informatics.muni.cz) wrote:
> Chris Wright wrote:
> : Both cosa_readmem and cosa_download don't seem to do any validation of
> : the user supplied ptr at all before dereferncing it in get_user.  And
> : it'd make sense to use 'code' in cosa_reamdme (as in cosa_download)
> : instead of 'd->code'.  Jan, does this look OK?
> 
> 	Yes, you are right. I've missed this. However, it is not
> as bad as it looks like, because you need the CAP_SYS_RAWIO to
> exploit this. I agree this patch should be applied.

Thanks for the confirmation.
-chris
-- 
Linux Security Modules     http://lsm.immunix.org     http://lsm.bkbits.net

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-04-21 21:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <3EA3B87B.60505@colorfullife.com.suse.lists.linux.kernel>
2003-04-21 13:47 ` [CHECKER] Help Needed! Andi Kleen
2003-04-21 15:40   ` Manfred Spraul
2003-04-21  9:23 Manfred Spraul
2003-04-21 19:15 ` Junfeng Yang
  -- strict thread matches above, loose matches on Subject: below --
2003-03-27 17:10 [CHECKER] potential dereference of user pointer errors Chris Wright
2003-04-21  7:49 ` [CHECKER] Help Needed! Junfeng Yang
2003-04-21 21:26   ` Chris Wright

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox