libcdaudio是用于控制音频CD的可移植函数库。 libcdaudio库的cddb.c文件中的cddb_read_disc_data函数在解析超长CDDB数据时存在堆溢出漏洞: --- src/cddb.c +++ src/cddb.c @@ -1679,7 +1679,7 @@ cddb_read_disc_data(int cd_desc, struct disc_data *outdata) free(file); while(!feof(cddb_data)) { - fgets(inbuffer, 512, cddb_data); + fgets(inbuffer, 256, cddb_data); cddb_process_line(inbuffer, data); } 如果用户受骗加载了恶意的音频文件的话,就可能触发这个溢出,导致执行任意指令。
libcdaudio是用于控制音频CD的可移植函数库。 libcdaudio库的cddb.c文件中的cddb_read_disc_data函数在解析超长CDDB数据时存在堆溢出漏洞: --- src/cddb.c +++ src/cddb.c @@ -1679,7 +1679,7 @@ cddb_read_disc_data(int cd_desc, struct disc_data *outdata) free(file); while(!feof(cddb_data)) { - fgets(inbuffer, 512, cddb_data); + fgets(inbuffer, 256, cddb_data); cddb_process_line(inbuffer, data); } 如果用户受骗加载了恶意的音频文件的话,就可能触发这个溢出,导致执行任意指令。