Bug tracker
如果你发现ClamAV有漏洞,请先到git下载最新的源码。
如果还不行,到bug tracker 提交漏洞报告。
请不要向我们报告由”第三方”:/download/third-party-tools发布的基于ClamAV的软件的漏洞(例如:我们不直接维护的ports等)。请直接联系开发者,因为我们无法管理他们。
你向我们提供的漏洞报告请包含以下内容(这些很重要):
clamconf -nuname -mrspzip -P virus -e file.zip file.ext
我们会保密文件的内容,如果你的文件太大不能发邮件,你可以把它上传到一个密码保护的网站,然后把URL地址和访问方法发给我们。
你可以按照下面的说明一步一步的去执行:
当你运行clamscan发生如下的错误:
$ clamscan --some-options some_file
Segmentation fault
首先让内核程序转储内存内容,bourne-like外壳,请运行(例如bash):
$ ulimit -c unlimited
C-like外壳(例如tcsh)请运行:
> limit coredumpsize unlimited
你现在应该看到core dumped信息:
$ clamscan --some-options some_file
Segmentation fault (core dumped)
在你的当前目录会产生一个core文件,将这个core文件加载到gdb中:
$ gdb -core=core --args clamscan --some-options some_file
(gdb)
你会看到gdb提示符,运行bt命令会显示详细的跟踪报告,将这些附到漏洞报告上一起发给我们。q命令退出gdb。
*clamd调试信息:
用ps命令获取clamd的PID号(左边的第一个数值):
$ ps -aux (or ps -elf on SysV)
clamav 24897 0.0 1.9 38032 10068 ? S Jan13 0:00 clamd
与gdb一起运行:
$ gdb /usr/sbin/clamd 24897
调整你clamd路径,将24897替换成你的clamd的pid,你会看到如下的gdb提示符:
(gdb)
如果你想让clamd一直运行直至出现segmentation fault错误,运行continue命令,然后等待错误出现,到时gdb会返回的提示符状态。
这时bt命令将给出当前线程的跟踪结果,info threads命令会告诉你有多少线程,thread n命令跳转到n线程,然后bt命令会给出跟踪报告。
简单的说,你需要这样做:
用info threads得到所有的线程和它们id号
对每个线程再运行:
thread id_number
bt
quit退出gdb,输入y确认退出。
*警告*:除非有特别提及,否则我们并不直接维护这些由第三方提供的安装包和ports,我们不对这些负责!
除非你是直接编译ClamAV源码的,否则我们不接受来自于某个安装包的漏洞报告。
我们会尽量保持更新此网站的本地化版本。如有延误,请参阅英文版,以便获取最新信息。

