Bugraq ID: 35853
NetBSD是一款基于BSD的操作系统。
NetBSD SHA2实现存在边界错误,本地攻击者可以利用漏洞触发缓冲区溢出,可能以应用程序权限执行任意指令。
程序使用sys/sha2.h中的SHA2实现,链接libcrypto库可被4或者8个字节的固定内容溢出。溢出发生于HASH INIT函数调用过程中(如SHA256_Init),init函数传递错误的上下文大小作为memset参数,可在之后的拷贝过程中覆盖缓冲区之后的4 字节内容。
NetBSD NetBSD 4.0.2
NetBSD NetBSD 4.0.1
NetBSD NetBSD 5.0
NetBSD NetBSD 4.0
厂商解决方案
用户可联系供应商获得补丁程序:
* NetBSD-current:
系统运行在2009-05-26之前的NetBSD-current版本必须升级到2009-05-27 NetBSD-current版本或者之后的版本。
下面的目录必须从netbsd-current CVS branch (aka HEAD)升级:
common/lib/libc/hash/sha2
distrib/sets/lists
lib/libc
lib/libcrypto
sys/sys
要升级CVS,重建和重安装lorem:
# cd src
# cvs update -d -P common/lib/libc/hash/sha2
# cvs update -d -P distrib/sets/lists
# cvs update -d -P lib/libc
# cvs update -d -P lib/libcrypto
# cvs update -d -P sys/sys
# cd sys/sys
# make USETOOLS=no cleandir
# make USETOOLS=no includes
# cd ../../lib/libc
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
# cd ../libcrypt
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
# cd ../libcrypto
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
* NetBSD 5.*
系统运行在2009-07-11之前的NetBSD 5.* sources版本必须升级到2009-07-12 NetBSD 5.* sources版本或者之后的版本。
下面的目录必须从netbsd-5或netbsd-5-0上升级:
common/lib/libc/hash/sha2
distrib/sets/lists
lib/libc
lib/libcrypto
sys/sys
要升级CVS,重建和重安装libc和libcrypto:
# cd src
# cvs update -r <branch_name> -d -P common/lib/libc/hash/sha2
# cvs update -r <branch_name> -d -P distrib/sets/lists
# cvs update -r <branch_name> -d -P lib/libc
# cvs update -r <branch_name> -d -P lib/libcrypto
# cvs update -r <branch_name> -d -P sys/sys
# cd sys/sys
# make USETOOLS=no cleandir
# make USETOOLS=no includes
# cd ../../lib/libc
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
# cd ../libcrypt
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
# cd ../libcrypto
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
* NetBSD 4.*:
系统运行在2009-07-22之前的NetBSD 4.* sources版本必须升级到2009-07-23 NetBSD 4.* sources版本或者之后的版本。
下面的目录必须从netbsd-4或netbsd-4-0上升级:
common/lib/libc/hash/sha2
distrib/sets/lists
lib/libc
lib/libcrypto
sys/sys
要升级CVS,重建和重安装libc和libcrypto:
# cd src
# cvs update -r <branch_name> -d -P common/lib/libc/hash/sha2
# cvs update -r <branch_name> -d -P distrib/sets/lists
# cvs update -r <branch_name> -d -P lib/libc
# cvs update -r <branch_name> -d -P lib/libcrypto
# cvs update -r <branch_name> -d -P sys/sys
# cd sys/sys
# make USETOOLS=no cleandir
# make USETOOLS=no includes
# cd ../../lib/libc
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
# cd ../libcrypt
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
# cd ../libcrypto
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
暂无评论