RedHat man 缓冲区溢出漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

在大多数的Linux发布中,/usr/bin/man被设置了sgid man位.设置这一位是为了在 /var/catman目录下创建预先格式化好的man手册页,以便提高访问速度。然而,man 程序多次使用sprintf函数将用户输入的数据储存到固定大小的缓冲区中。这导致用 户可以提供超长的数据来使缓冲区溢出,获得man gid权限,进一步甚至可能获得root 权限。 比如,通过设置MANOAGER变量为超过4000个'A'的字符串,将导致缓冲区溢出: $ MANPAGER=`perl -e '{print "A"x4000}'` man ls [...] 1200 setuid(500) = 0 1200 setgid(15) = 0 1200 open("/usr/share/locale/pl/man", O_RDONLY) = -1 ENOENT (No such file or directory) 1200 open("/usr/share/locale/pl/LC_MESSAGES/man", O_RDONLY) = -1 ENOENT (No such file or directory)1200 open("/usr/share/locale/pl/man", O_RDONLY) = -1 ENOENT (No such file or directory) 1200 open("/usr/share/locale/pl/LC_MESSAGES/man", O_RDONLY) = -1 ENOENT (No such file or directory)1200 close(-1) = -1 EBADF (Bad file descriptor) 1200 write(2, "Error executing formatting or display command.\nSystem command (cd /usr/man ; (echo 1200 --- SIGSEGV (Naruszenie ochrony pami?ci) --- 1200 +++ killed by SIGSEGV +++ Program received...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息