Firefly是Roku SoundBridge和iTunes所使用的开源媒体服务器。 Firefly在处理畸形文件时存在漏洞,远程攻击者可能利用此漏洞导致服务器崩溃。 在Firefly的webserver.c文件中,ws_getheaders函数的631行存在空指针引用漏洞。如果文件头中的某行(非第一行)不包含"':"的话,就会触发这个漏洞,因为strsep(&last, ':')会对变量last分配NULL,然后代码试图引用last: strsep(&last,":"); if(last==first) { DPRINTF(E_WARN,L_WS,"Thread %d: Invalid header: %s\n", pwsc->threadno,first); } else { while(*last==' ') last++; webserver.c文件的ws_decodepassword函数的1399行也存在空指针引用漏洞。header变量会一直递增,直到遇到空字符,因此可能会越界引用内存: /* xlat table is initialized */ while(*header != ' ') header++; "
Firefly是Roku SoundBridge和iTunes所使用的开源媒体服务器。 Firefly在处理畸形文件时存在漏洞,远程攻击者可能利用此漏洞导致服务器崩溃。 在Firefly的webserver.c文件中,ws_getheaders函数的631行存在空指针引用漏洞。如果文件头中的某行(非第一行)不包含"':"的话,就会触发这个漏洞,因为strsep(&last, ':')会对变量last分配NULL,然后代码试图引用last: strsep(&last,":"); if(last==first) { DPRINTF(E_WARN,L_WS,"Thread %d: Invalid header: %s\n", pwsc->threadno,first); } else { while(*last==' ') last++; webserver.c文件的ws_decodepassword函数的1399行也存在空指针引用漏洞。header变量会一直递增,直到遇到空字符,因此可能会越界引用内存: /* xlat table is initialized */ while(*header != ' ') header++; "