CVE:CVE-2007-2055
CNNVD:CNNVD-200704-598
AFFLIB是用于操作高级取证格式(AFF)文件的开源函数库。 
AFFLIB的一些popen()调用未经验证或转义便使用了用户提供的命令行参数，本地攻击者可能利用这些漏洞提升权限。
具体漏洞如下：
* 解压调用Shell命令注入 *
文件：tools/afconvert.cpp
行数：245  & 255
popen()调用未经验证或转义便使用了一个命令行参数，如果这个命令或这个函数接受了不可信任来源的参数，就可能导致执行任意命令。240-257行说明了这个问题：
    /* Check to see if it is a gzip file... */
    if(probe_gzip(infile)
        & & yesno("infile looks like a gzip file","Uncompress it","Uncompressing")){
       /* Open with a subprocess. We will need to use zlib when we move to Windows. */
       char buf[256];
       sprintf(buf,"gzcat %s",infile);
       a_in = af_popen(buf,"r");
    }
    /* Check to see if it is a bzip2 file... */
    if(!a_in
        & & probe_bzip2(infile)
        & & yesno("infile looks like a bzip2 file","Uncompress it","Uncompressing")){
       /* Open with a subprocess. We will need to use bzip2zlib when we move to Windows. */
       char buf[256];
       sprintf(buf,"bzcat %s",infile);
       a_in = af_popen(buf,"r");
    }
    char buf[256];
    sprintf(buf,"gzcat %s",infile);
    a_in = af_popen(buf,"r");
由于af_popen()最终使用了popen()系统调用，且infile直接来自于命令行参数，因此攻击者能够控制输入的话就可以注入特殊的命令行字符。
* 未使用的get_parameter函数Shell命令注入 *
文件：aimage/ident.cpp
行数：190
popen()调用未经验证或转义便使用了一个命令行参数，如果get_parameter函数接受了不可信任来源的参数，就可能导致执行任意命令。但目前这个函数未被使用。
solution:Upgrade afflib afflib to a higher version than 2.2.8,and avoid the version (,2.2.8]