
mozillasecurity/libfuzzermozillasecurity/libfuzzer是Mozilla安全团队提供的Docker镜像,用于基于LibFuzzer的模糊测试开发和运行。该镜像适用于本地开发环境,无需生产环境中的KMS凭证,支持与FuzzManager集成,可配置覆盖率收集和常规模糊测试任务。
使用fuzzfetch工具获取Firefox模糊测试构建(根据测试类型选择命令):
bash# 覆盖率运行(指定特定版本) REVISION=$(curl -sL [***] fuzzfetch --build "$REVISION" --fuzzing --coverage -a --tests gtest -n firefox # 常规运行(最新版本) fuzzfetch --fuzzing --coverage -a --tests gtest -n firefox
用于收集模糊测试覆盖率数据,需至少预留4GB内存防止grcov工具内存溢出:
bashdocker run \ -h `hostname` \ -v ~/.fuzzmanagerconf:/home/worker/.fuzzmanagerconf \ -v ~/firefox/:/home/worker/firefox \ -e COVERAGE=1 \ -e COVRUNTIME=600 \ -e LIBFUZZER_ARGS=-max_total_time=180 \ -e TOKENS=dicts/sdp.dict \ -e FUZZER=SdpParser \ -e CORPORA=samples/sdp/ \ --rm -it mozillasecurity/libfuzzer
用于标准模糊测试任务:
bashdocker run \ -h `hostname` \ -v ~/.fuzzmanagerconf:/home/worker/.fuzzmanagerconf \ -v ~/firefox/:/home/worker/firefox \ -e TOKENS=dicts/sdp.dict \ -e FUZZER=SdpParser \ -e CORPORA=samples/sdp/ \ --rm -it mozillasecurity/libfuzzer
如需覆盖默认CMD并进入容器shell手动执行:
bashdocker run \ -h `hostname` \ -v ~/.fuzzmanagerconf:/home/worker/.fuzzmanagerconf \ -v ~/firefox/:/home/worker/firefox \ [其他环境变量] \ --rm -it mozillasecurity/libfuzzer bash -li
进入容器后可手动运行setup.sh脚本,环境变量配置将保持生效。
| 环境变量 | 描述 |
|---|---|
| COVERAGE | 启用覆盖率收集,设为1时激活覆盖率模式 |
| COVRUNTIME | 覆盖率运行总时长(秒),控制测试持续时间 |
| LIBFUZZER_ARGS | 传递给LibFuzzer的参数,如-max_total_time=180限制单轮测试时间 |
| TOKENS | 字典文件路径,从fuzzdata仓库获取(如dicts/sdp.dict) |
| FUZZER | 指定要运行的模糊器名称(如SdpParser) |
| CORPORA | 语料库目录路径,从fuzzdata仓库获取(如samples/sdp/) |
| SHIP | 用于EC2等服务环境,自动识别主机名用于FuzzManager上报,无需手动设置-h |
~/.fuzzmanagerconf需正确配置FuzzManager连接信息~/firefox/目录必须包含通过fuzzfetch获取的完整Firefox构建--rm参数确保容器退出后自动清理,-it提供交互式终端支持



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务