受影响系统
Symark PowerBroker 2.8 至 5.0.1 版本
漏洞描述
Symark PowerBroker 是 UNIX 和 Linux 系统上广泛使用的权限管理与控制工具,常被视为运维人员手中的“安全门禁卡”。然而,近期研究发现该工具存在一个严重的缓冲区溢出漏洞,攻击者能够利用此漏洞直接提升系统权限,危害极大。
漏洞的根源在于 PowerBroker 的客户端组件(如 pbksh、pbsh、pbrun)与 master 进程初始化通信时的处理机制。双方会先交换协议版本声明,典型声明格式如下:
#!Proto pbksh version=4.0.8-03,MPX,MPX2,LOGSRV,[…]
声明中的名称并非硬编码,而是在运行时从 argv[0] 命令行参数动态获取。随后,程序通过 strcat() 函数将该名称拼接至声明字符串中——而该声明字符串被存放在一个大小为 1048 字节的静态栈缓冲区中。如果本地用户在调用这些 setuid-root 二进制程序时,故意提供一个超长的 argv[0] 值,就会导致缓冲区溢出,栈溢出随之发生,攻击者便有机会执行任意指令。简单来说,只需提供一个超长参数,攻击者就能让系统“自动开门”,从而获得权限提升。
厂商补丁
好消息是,Symark 已经发布了针对此漏洞的安全补丁。受影响的用户可访问厂商官方网站下载并更新:
https://www.symark.com/downloads/pb/PBFeb2008/index.html
建议尽快完成升级,切勿给攻击者留下可乘之机。
