Bugtraq ID: 44288
NetBSD是一款基于BSD的操作系统。
netsmb文件系统内核模块不正确检查缓冲区限制,普通用户可使内核分配过大的内部缓冲区去处理请求,导致内存耗竭。
ioctl SMBIOC_OPENSESSION中的长度参数为有符号类型,没有检查负值。
NetBSD 5.0.2
NetBSD 4.0.1
NetBSD 5.0
NetBSD 4.0
厂商解决方案
已经修补的源文件可从NetBSD CVS库中获得:
CVS branch file revision
------------- ---------------- -----------
HEAD src/sys/netsmb/mchain.h 1.9
HEAD src/sys/netsmb/smb_dev.h 1.7
HEAD src/sys/netsmb/smb_subr.c 1.35
HEAD src/sys/netsmb/smb_subr.h 1.19
HEAD src/sys/netsmb/subr_mchain.c 1.19
netbsd-5-0 src/sys/netsmb/mchain.h 1.7.58.1
netbsd-5-0 src/sys/netsmb/smb_dev.h 1.6.80.1
netbsd-5-0 src/sys/netsmb/smb_subr.c 1.32.12.1
netbsd-5-0 src/sys/netsmb/smb_subr.h 1.18.12.1
netbsd-5-0 src/sys/netsmb/subr_mchain.c 1.15.12.1
netbsd-5 src/sys/netsmb/mchain.h 1.7.52.1
netbsd-5 src/sys/netsmb/smb_dev.h 1.6.74.1
netbsd-5 src/sys/netsmb/smb_subr.c 1.32.6.1
netbsd-5 src/sys/netsmb/smb_subr.h 1.18.6.1
netbsd-5 src/sys/netsmb/subr_mchain.c 1.15.6.1
netbsd-4-0 src/sys/netsmb/mchain.h 1.6.34.1
netbsd-4-0 src/sys/netsmb/smb_dev.h 1.6.52.1
netbsd-4-0 src/sys/netsmb/smb_subr.c 1.29.8.1
netbsd-4-0 src/sys/netsmb/smb_subr.h 1.16.46.1
netbsd-4-0 src/sys/netsmb/subr_mchain.c 1.13.28.1
netbsd-4 src/sys/netsmb/mchain.h 1.6.24.1
netbsd-4 src/sys/netsmb/smb_dev.h 1.6.12.1
netbsd-4 src/sys/netsmb/smb_subr.c 1.29.2.1
netbsd-4 src/sys/netsmb/smb_subr.h 1.16.6.1
netbsd-4 src/sys/netsmb/subr_mchain.c 1.13.18.1
可使用如下方法从CVS更新,重建和重装:
# cd src
# cvs update -d -P -r BRANCH FILES
# ./build.sh tools kernel=KERNCONF
# mv /netbsd /netbsd.old
# cp sys/arch/ARCH/compile/obj/KERNCONF/netbsd /netbsd
# shutdown -r now
暂无评论