xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

FreeBSD linprocfs 可泄露特权进程内存漏洞


发布时间:2001-08-25
更新时间:2001-08-25
严重程度:
威胁程度:读取受限文件
错误类型:设计错误
利用方式:服务器模式

受影响系统
FreeBSD FreeBSD 4.3-STABLE
FreeBSD FreeBSD 4.3-RELEASE
FreeBSD FreeBSD 4.3
FreeBSD FreeBSD 4.2-STABLE
FreeBSD FreeBSD 4.2-RELEASE
FreeBSD FreeBSD 4.2
FreeBSD FreeBSD 4.1.1-STABLE
FreeBSD FreeBSD 4.1.1-RELEASE
FreeBSD FreeBSD 4.1.1
FreeBSD FreeBSD 4.1
FreeBSD FreeBSD 4.0
FreeBSD FreeBSD 3.5.1-STABLE
FreeBSD FreeBSD 3.5.1-RELEASE
FreeBSD FreeBSD 3.5-STABLE
FreeBSD FreeBSD 3.5
详细描述
FreeBSD的linprocfs是其对LINUX /proc文件系统的实现,其中对某些
进程和系统信息和参数提供接口,可以用来让LINUX程序能获得
对内核数据的访问。

其中问题存在于对判断是否应该赋予kmem组只读权限中,只要进程已经
打开了一个procfs mem文件的的文件描述符,就会不切当的给调用者
/proc/<pid>/mem文件的读取权限。这将导致非特权进程读取某些特权
进程的内存,可能获取一些敏感信息,例如/etc/master.passwd信息等等。

测试代码
尚无

解决方案
临时方法:
卸载procfs和linprocfs文件系统:
# umount -f -a -t procfs
# umount -f -a -t linprocfs

然后在/etc/fstab中注释掉下面两行:

或者下载补丁程序:

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:55/procfs.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:55/procfs.patch.asc
# cd /usr/src/sys
# patch -p < /path/to/patch

编译内核并重新启动系统。

如果procfs是通过KLD动态加载的,使用下面命令进行修补,无需重启系统:.

# cd /usr/src/sys/modules/procfs
# make depend
# make all install
# umount -f -a -t procfs
# kldunload procfs
# kldload procfs
# mount -a -t procfs

FreeBSD也为4.3-RELEASE提供了一个二进制的升级包:
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-01:55/security-patch-procfs-01.55.tgz
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-01:55/security-patch-procfs-01.55.tgz.asc
# pkg_add security-patch-procfs-01.55.tgz

相关信息