OpenBSD是加拿大OpenBSD项目组开发的一套跨平台的、基于BSD的类UNIX操作系统。 OpenBSD的select调用对缓冲边界缺少正确检查,本地攻击者可以利用这个漏洞进行缓冲区溢出攻击。 select调用中不充分的缓冲区边界检查允许攻击者覆盖内核内存,并以内核权限执行任意代码。 传统情况下,select系统调用的大小参数定义为一个有符号整数,这样内核会以有符号整数的范围来检查边界缓冲区长度,因此当攻击者使用负数时就会绕过边界检查。然而当内核为select系统调用从用户空间拷贝数据时,其大小却是作为一个无符号整数看待的,这可导致内核内存被任意数据覆盖。本地攻击者可能在内核空间中执行任意代码,从而完全控制系统。
OpenBSD是加拿大OpenBSD项目组开发的一套跨平台的、基于BSD的类UNIX操作系统。 OpenBSD的select调用对缓冲边界缺少正确检查,本地攻击者可以利用这个漏洞进行缓冲区溢出攻击。 select调用中不充分的缓冲区边界检查允许攻击者覆盖内核内存,并以内核权限执行任意代码。 传统情况下,select系统调用的大小参数定义为一个有符号整数,这样内核会以有符号整数的范围来检查边界缓冲区长度,因此当攻击者使用负数时就会绕过边界检查。然而当内核为select系统调用从用户空间拷贝数据时,其大小却是作为一个无符号整数看待的,这可导致内核内存被任意数据覆盖。本地攻击者可能在内核空间中执行任意代码,从而完全控制系统。