FreeBSD <= 6.1 kqueue() NULL pointer dereference

2009.08.23
Risk: Medium
Local: Yes
Remote: No
CWE: CWE-362


CVSS Base Score: 6.9/10
Impact Subscore: 10/10
Exploitability Subscore: 3.4/10
Exploit range: Local
Attack complexity: Medium
Authentication: No required
Confidentiality impact: Complete
Integrity impact: Complete
Availability impact: Complete

FreeBSD <= 6.1 suffers from classical check/use race condition on SMP systems in kevent() syscall, leading to kernel mode NULL pointer dereference. It can be triggered by spawning two threads: 1st thread looping on open() and close() syscalls, and the 2nd thread looping on kevent(), trying to add possibly invalid filedescriptor. The bug was fixed in 6.1-STABLE, just before release of 6.2-RELEASE, but was not recognized as security vulnerability. The following code exploits this vulnerability to run root shell: http://www.frasunek.com/kqueue.txt -- * Fido: 2:480/124 ** WWW: http://www.frasunek.com/ ** NICHDL: PMF9-RIPE * * JID: venglin_at_jabber.atman.pl ** PGP ID: 2578FCAD ** HAM-RADIO: SQ8JIV *

References:

http://www.securitytracker.com/id?1022982
http://www.securityfocus.com/bid/36375
http://security.freebsd.org/advisories/FreeBSD-SA-09:13.pipe.asc
http://www.securityfocus.com/archive/1/506449
http://osvdb.org/58544


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top