安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障