NetBSD SHA2实现存在缓冲区溢出漏洞

漏洞起因
边界条件错误
 
影响系统
NetBSD NetBSD 4.0.2
NetBSD NetBSD 4.0.1
NetBSD NetBSD 5.0
NetBSD NetBSD 4.0
 
不受影响系统
 
危害
本地攻击者可以利用漏洞触发缓冲区溢出,可能以应用程序权限执行任意指令。
 
攻击所需条件
攻击者必须访问NetBSD。
 
漏洞信息
NetBSD是一款基于BSD的操作系统。
NetBSD SHA2实现存在边界错误,本地攻击者可以利用漏洞触发缓冲区溢出,可能以应用程序权限执行任意指令。
程序使用sys/sha2.h中的SHA2实现,链接libcrypto库可被4或者8个字节的固定内容溢出。溢出发生于HASH INIT函数调用过程中(如SHA256_Init),init函数传递错误的上下文大小作为memset参数,可在之后的拷贝过程中覆盖缓冲区之后的4字节内容。
 
测试方法
 
厂商解决方案
用户可联系供应商获得补丁程序:
* 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
 
漏洞提供者
Joerg Sonnenberger
  

发表评论?

0 条评论。

发表评论