ATP httpd远程单字节缓冲区溢出漏洞 CVE-2002-1816 CNNVD-200212-489

7.5 AV AC AU C I A
发布: 2002-12-31
修订: 2024-02-15

ATP httpd是一款轻量级的HTTP服务器程序。 ATP httpd中sock_gets()函数对接收到的数据缺少正确的缓冲区边界检查,远程攻击者可以利用这个漏洞进行缓冲区溢出漏洞,以root用户的权限在系统上执行任意指令。 缓冲区溢出发生在当sock_gets()函数接收到字符串时,函数会接收\'\'count\'\'大小个字符并在最后字符串中追加NULL字符,如果\'\'count\'\'变量值等于传递个这个函数第一参数的字符串大小,就会导致单字节溢出。 下面是问题所在(在\'\'total_count\'\'和\'\'count\'\'之间对比没有预见NULL字符会追加到字符串中): sockhelp.c:311: if ( (total_count < count) && (last_read != 10) && (last_read !=13) ) sockhelp.c:{ sockhelp.c:312: current_position[0] = last_read; sockhelp.c:313: current_position++; sockhelp.c:314: total_count++; sockhelp.c:315: } sockhelp.c:316: } sockhelp.c:317: if (count > 0) 由于不正确的对比,指向字符串的指针\'\'str\'\'会接收到\'\'count\'\'+1字节的数据导致缓冲区溢出: sockhelp.c:318: current_position[0] = 0; sockhelp.c:319: return total_count; sockhelp.c:320:} 由于此HTTP服务程序是单线程结构,守护进程没有设计权限分离,因此需要以root用户权限监听TCP/80端口,任何缓冲区溢出可以导致以root用户权限在系统上执行任意指令。

0%
当前有2条漏洞利用/PoC
当前有3条受影响产品信息