CERT 安全公告 CA-2002-26 (Linux,补丁)

/ns/ld/softld/data/20020820030439.htm




CERT 安全公告 CA-2002-26 (Linux,补丁)

涉及程序:
CDE ToolTalk database server

描述:
CERT 安全公告 多个厂商CDE ToolTalk数据库服务器远程溢出缺陷

详细:
Common Desktop Environment (CDE) ToolTalk 远程过程调用数据库服务器存在一个缓冲区溢出缺陷,允许远程攻击者在系统上执行任意程序代码和指令,或进行拒绝服务攻击。

Common Desktop Environment (CDE) 是一个运行在 Unix 以及 Linux 操作系统上的综合图形用户接口。CDE ToolTalk 是一个通讯代理系统,用于不同主机和平台上的应用程序通过远程过程调用(RPC)相互通讯。用户可在 http://www.opengroup.org/cde/ 及 http://www.opengroup.org/desktop/faq/ 中找到更多关于CDE 的信息。

在大部分的 Unix 环境下,CDE ToolTalk 都是被缺省安装的. ToolTalk远程过程调用数据库服务器用来管理ToolTalk应用程序之间的通讯. 不幸的是 CDE ToolTalk database server 在传递参数给 procedure _TT_CREATE_FILE()时存在一个堆溢出(heap buffer overflow)缺陷。一个可访问 ToolTalk RPC database service 的攻击者可利用此缺陷,精心构建一个 RPC message 来进行攻击。

利用在 RPC message 中包含的一个传送给 _TT_CREATE_FILE() 的特别设计的参数,远程攻击者可以在系统上执行任意指令或进行拒绝服务攻击。在大部分的系统上,ToolTalk database server 通常是以 root 权限执行。部分操作系统所提供的 non-executable stack 保护措施并不能防止在 heap 内的程序被执行。

此安全缺陷是由 Entercept Ricochet Team发现的,并公布在 Entercept Security Alert 中:

http://www.entercept.com/news/uspr/08-12-02.asp

受影响平台:

所有运行 CDE ToolTalk 的系统。


攻击方法:
暂无有效攻击代码

解决方案:
* 安装厂商提供的修复程序。

* 将有缺陷的服务关闭。

在取得并安装修复程序之前,使用者可以先关闭 ToolTalk RPC database service。CERT/CC 建议关闭所有未明确需要的服务。在一典型的 CDE 系统上,欲关闭 rpc.ttdbserverd 可以在 /etc/inetd.conf (及 /etc/rpc,若需要的话)文档中相关的设定列前加上注释符号,然后再重新启动 inetd 程序。

ToolTalk RPC database server 的程序编号 (program number) 为 100083。若在 /etc/inetd.conf 或 /etc/rpc 文档中,或是 rpcinfo(1M) 及 ps(1) 指令的输出结果中,有任何对 100083 或 rpc.ttdbserverd 的引用,则说明 ToolTalk RPC database server 可能在运行中。

下列范例取自运行 SunOS 5.8 (Solaris 8) 的系统:

/etc/inetd.conf
...
#
# Sun ToolTalk Database Server
#
100083/1 tli rpc/tcp wait root /usr/dt/bin/rpc.ttdbserverd rpc.ttdbserverd
...

# rpcinfo -p
program vers proto port service
...
100083 1 tcp 32773
...


# ps -ef
UID PID PPID C STIME TTY TIME CMD
...
root 355 164 0 19:31:27 ? 0:00 rpc.ttdbserverd
...

在决定关闭 ToolTalk RPC database server 或 RPC portmapper service之前,应仔细考虑您的网络设置与服务需求。

* 限制对有缺陷服务的访问

在取得并安装修复程序之前,使用者应该限制从不信任网络对 ToolTalk RPC database server 及 RPC portmapper service 的访问。可使用防火墙或其它包过滤技术来限制访问。ToolTalk RPC database server 使用的端口可能是 tcp 692 端口或 rpcinfo(1M) 指令输出结果中所显示的端口。

在上述的范例中,ToolTalk RPC database server 被设置为使用 tcp 32773 port。而 RPC portmapper service 则通常使用 tcp 及 udp 111 port。

需要注意的是记住限制外部的访问并不能保护不受内部网络的攻击。

在决定阻塞或限制访问之前,应仔细考虑您的网络设定与服务需求。


附加信息:
CVE-2002-0679