CVE:CVE-2009-2765
CNNVD:CNNVD-200908-183
DD-WRT是一个供无线路由器使用的嵌入版Linux，可以在普通的家用无线路由器实现商用无线路由器功能。
DD-WRT的httpd.c文件中存在多个安全漏洞：
859    if (containsstring(file， "cgi-bin")) {
860 
861      auth_fail = 0;
862      if (!do_auth
863       (conn_fp， auth_userid， auth_passwd， auth_realm，
864       authorization， auth_check))
865        auth_fail = 1;
......... (snip)............
899 
900      }
901      exec = fopen("/tmp/exec.tmp"， "wb");
902      fprintf(exec， "export REQUEST_METHOD=\"%s\"\n"， method);
903      if (query)
904        fprintf(exec， "/bin/sh %s/%s</tmp/exec.query\n"，
905          server_dir != NULL ?
server_dir : "/www"，file);
906      else
907        fprintf(exec， "/%s/%s\n"，
908          server_dir != NULL ? server_dir : "/www"，
file);
909      fclose(exec);
910 
911      if (query) {
912        exec = fopen("/tmp/exec.query"， "wb");
913        fprintf(exec， "%s\n"， query);
........................
这里存在两个问题：
1) 没有处理元字符。
2) 未经认证便执行了命令。
如果没有通过认证就不会给出任何输出。
.......................
914        free(query);
915        fclose(exec);
916      }
917 
918      system2("chmod 700 /tmp/exec.tmp");
919      system2("/tmp/exec.tmp>/tmp/shellout.asp");
........... (snip)..........
926      if (auth_fail == 1) {
927        send_authenticate(auth_realm);
928        auth_fail = 0;
------------
3) httpd以root用户权限运行。
结合以上三个问题，任何能够连接到Web管理接口的未经认证的攻击者都可以在浏览器中通过类似于以下的URL获得对设备的root访问：
 http://routerIP/cgi-bin/;command_to_execute
solution:Upgrade dd-wrt dd-wrt to a higher version than *:sp1,and avoid the version *:sp1