Affix是由Nokia研究中心开发的Linux蓝牙协议栈。 Nokia Affix BTSRV中存在远程命令执行漏洞。以下代码段位于affix-3.2.0/daemon/btsrv.c: int event_pin_code_request(struct PIN_Code_Request_Event *evt, int devnum) { ... err = HCI_RemoteNameRequest(fd, &dev, name); if (err) { BTDEBUG(\"Name request failed: \\%s\", hci_error(err)); ... sprintf(cmdline, \"/etc/affix/btsrv-gui pin \\"\\%s\\" \\%s\", name, bda2str( &evt->bda)); DBPRT(\"cmdline: [\\%s]\", cmdline); fp = popen(cmdline, \"r\"); if (!fp) { BTERROR(\"popen() failed\"); goto err; } err = fscanf(fp, \"\\%s\", pin); if (err == EOF) { BTERROR(\"fscanf() failed\"); pclose(fp); goto err; } 调用HCI_RemoteNameRequest()导致了这个漏洞。攻击者可以通过设备名提供任意命令,并在服务环境中执行。
Affix是由Nokia研究中心开发的Linux蓝牙协议栈。 Nokia Affix BTSRV中存在远程命令执行漏洞。以下代码段位于affix-3.2.0/daemon/btsrv.c: int event_pin_code_request(struct PIN_Code_Request_Event *evt, int devnum) { ... err = HCI_RemoteNameRequest(fd, &dev, name); if (err) { BTDEBUG(\"Name request failed: \\%s\", hci_error(err)); ... sprintf(cmdline, \"/etc/affix/btsrv-gui pin \\"\\%s\\" \\%s\", name, bda2str( &evt->bda)); DBPRT(\"cmdline: [\\%s]\", cmdline); fp = popen(cmdline, \"r\"); if (!fp) { BTERROR(\"popen() failed\"); goto err; } err = fscanf(fp, \"\\%s\", pin); if (err == EOF) { BTERROR(\"fscanf() failed\"); pclose(fp); goto err; } 调用HCI_RemoteNameRequest()导致了这个漏洞。攻击者可以通过设备名提供任意命令,并在服务环境中执行。