High Performance Anonymous FTP Server多个缓冲区溢出漏洞

2007-03-29T00:00:00
ID SSV:1572
Type seebug
Reporter Root
Modified 2007-03-29T00:00:00

Description

hpaftpd是一款高性能FTP服务程序。

hpaftpd多个命令存在边界条件错误,远程攻击者可以利用漏洞以应用程序进程权限执行任意指令。

hpaftpd读取用户数据使用如下代码:

n = nb_get(nbc, buf, BUF_SIZE - 1);

这里BUF_SIZE定义为:

define BUF_SIZE 8192

而此BUF_SIZE用于登录用户数据,如:

sprintf(obuf, "331 Password required for %s\r\n", ftpc->user);

ftpc->user限制于8192,而obuf也限制在8192:

char buf[BUF_SIZE], obuf[BUF_SIZE]; / Input buffer, output buffer /

提供超长数据可导致溢出,以下命令也同样会溢出obuf缓冲区:

  • USER
  • PASS (with a combination of a USER command)
  • CWD
  • MKD
  • RMD
  • DELE
  • RNFR
  • RNTO (with a vald RNFR combination)

Hpaftpd 1.01 目前没有解决方案提供:

<a href="http://hpaftpd.sourceforge.net/" target="_blank">http://hpaftpd.sourceforge.net/</a>