QNX Neutrino RTOS libAp ABLPATH环境变量缓冲区溢出漏洞
发布日期:2006-02-07
更新日期:2006-02-07
受影响系统:QNX Neutrino RTOS 6.3.0
描述:
QNX Neutrino RTOS是嵌入系统中所使用的实时操作系统。
QNX Neutrino RTOS的libAp函数库实现上存在漏洞,成功利用这个漏洞的本地攻击者可能以root用户权限执行任意指令。
QNX Neutrino RTOS没有正确地处理libAP系统函数库中的环境变量。具体的说,_ApFindTranslationFile()函数在进行strcat操作之前没有对ABLPATH环境变量进行边界检查。攻击者可以向ABLPATH提供超长的值溢出栈缓冲区,覆盖返回地址,如下所示:
Program received signal SIGSEGV, Segmentation fault.
0xb8242bf7 in ApMultiStrcat () from /usr/qnx630/target/qnx6/x86/usr/lib/libAp.so.2
(gdb) x/i $pc
0xb8242bf7 <ApMultiStrcat+15>: mov (%eax),%dl
(gdb) bt
#0 0xb8242bf7 in ApMultiStrcat () from /usr/qnx630/target/qnx6/x86/usr/lib/libAp.so.2
#1 0xb823ce07 in _ApFindTranslationFile () from /usr/qnx630/target/qnx6/x86/usr/lib/libAp.so.2
#2 0x42424242 in ?? ()
<*来源:Filipe Balestra (
filipe@balestra.com.br)
链接:
http://idefense.com/intelligence/vulnerabilities/display.php?id=381
*>
建议:
临时解决方法:
* 从任何链接到libAP.so.2的程序删除setuid位:
# ls -l /usr/photon/bin/phlocale
-rwsrwxr-x 1 root root 54244 May 05 2004 /usr/photon/bin/phlocale
# ldd /usr/photon/bin/phlocale
/usr/photon/bin/phlocale:
libAp.so.3 => /usr/lib/libAp.so.3 (0xb8200000)
libph.so.3 => /usr/lib/libph.so.3 (0xb8210000)
libphrender.so.2 => /usr/lib/libphrender.so.2 (0xb8312000)
libm.so.2 => /lib/libm.so.2 (0xb8347000)
libfont.so.1 => /lib/libfont.so.1 (0xb8363000)
libc.so.2 => /usr/lib/ldqnx.so.2 (0xb0300000)
# chmod -s /usr/photon/bin/phlocale
厂商补丁:
QNX
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.qnx.com/浏览次数:3021
严重程度:0(网友投票)