CVE:CVE-2001-0291
CNNVD:CNNVD-200105-080
post-query是NCSA发布的一个常见的Unix下的CGI演示程序。它用C语言编写。很多Unix/Linux发布版本中都包含该CGI。
post-query存在一个远程缓冲区溢出漏洞，远程攻击者可能利用此漏洞在主机上以Web服务进程的权限执行任意指令。
如果向post-query提交超过10001个参数的请求，就会触发一个缓冲区溢出。精心构造该请求，可以在目标主机上执行任意代码。有问题的代码如下：
...
#define MAX_ENTRIES 10000
typedef struct {
    char *name;
    char *val;
} entry;
...
main(int argc， char *argv[]) {
    entry entries[MAX_ENTRIES];
...
    for(x=0;cl && (!feof(stdin));x++) {
        m=x;
        entries[x].val = fmakeword(stdin，'&'，&cl);
        plustospace(entries[x].val);
        unescape_url(entries[x].val);
        entries[x].name = makeword(entries[x].val，'=');
    }
...