Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
879c0a3
Add transplant benchmarks and local experiment support
Apr 8, 2026
d0906f2
Add OpenSC crash references and seed variants
Apr 11, 2026
71f0bf4
Add ndpi_transplant_fuzz_ndpi_reader benchmark
Apr 13, 2026
dcb7a7e
Preserve parent image's Python in benchmark-builder
Apr 13, 2026
7fb608a
Fix fuzzer builder images for newer toolchains
Apr 13, 2026
c81bb36
Rebase ndpi_transplant benchmark onto focal base-builder
linkeLi0421 Apr 13, 2026
94ccf98
Rebase opensc_transplant benchmark onto focal base-builder
linkeLi0421 Apr 13, 2026
6fa4537
Add libavc_transplant_svc_dec_fuzzer benchmark
LINKE Apr 14, 2026
0b57f1e
Harden libafl Rust install: pin HOME paths, wipe preinstalled /rust
linkeLi0421 Apr 15, 2026
25048e5
ndpi build.sh: disable optional libpcap backends and propagate \$CC/\…
linkeLi0421 Apr 15, 2026
87c629f
Merge remote-tracking branch 'origin/libavc-transplant-benchmark'
linkeLi0421 Apr 15, 2026
af23cbc
Add ndpi_transplant_fuzz_process_packet benchmark
Apr 15, 2026
da2ed03
ndpi_transplant_fuzz_process_packet: disable json-c in build
Apr 16, 2026
ba1cc7f
ndpi_transplant_fuzz_process_packet: per-invocation ndpi_flow
Apr 16, 2026
44ed511
Merge pull request #1 from linkeLi0421/ndpi-fuzz-process-packet-bench…
linkeLi0421 Apr 16, 2026
fd979fb
honggfuzz: raise per-input timeout and wrap in restart loop
linkeLi0421 Apr 20, 2026
b2fde13
honggfuzz: raise per-input timeout and wrap in restart loop
linkeLi0421 Apr 20, 2026
2084f92
...~
linkeLi0421 Apr 20, 2026
858f5e5
Merge branch 'master' of https://github.com/linkeLi0421/fuzzbench
Apr 20, 2026
3e5a27e
Merge pull request #2 from linkeLi0421/linke/honggfuzz-ptrace-fix
linkeLi0421 Apr 20, 2026
a9e7084
Add ghostscript_transplant_gstoraster_fuzzer benchmark
linkeLi0421 Apr 20, 2026
23c2f8f
Merge pull request #3 from linkeLi0421/ghostscript-transplant-benchmark
linkeLi0421 Apr 20, 2026
bd506a9
honggfuzz: patch arch.c ptrace race instead of restart loop
linkeLi0421 Apr 20, 2026
69e57d8
Merge remote-tracking branch 'origin/master'
linkeLi0421 Apr 20, 2026
960337f
ntopng_transplant_fuzz_dissect_packet: new transplant benchmark
linkeLi0421 Apr 20, 2026
4e321de
Merge pull request #4 from linkeLi0421/linke/ntopng-transplant-benchmark
linkeLi0421 Apr 20, 2026
1fbb7e8
c-blosc2 transplant benchmark: regenerate with current pipeline
linkeLi0421 Apr 20, 2026
7351791
Add libredwg_transplant_llvmfuzz benchmark
linkeLi0421 Apr 20, 2026
7e04be7
Merge pull request #5 from linkeLi0421/linke/libredwg-transplant-benc…
linkeLi0421 Apr 20, 2026
f80375e
htslib_transplant_hts_open_fuzzer: new transplant benchmark
linkeLi0421 Apr 20, 2026
7eaa9e6
libredwg_transplant_llvmfuzz: align with other transplant benchmarks
linkeLi0421 Apr 21, 2026
fa06166
Merge pull request #6 from linkeLi0421/linke/libredwg-transplant-benc…
linkeLi0421 Apr 21, 2026
04dcae3
benchmark-runner: install libexpat1 for ntopng (and any AFL++ target)
linkeLi0421 Apr 20, 2026
4b4cd59
Merge pull request #7 from linkeLi0421/linke/ntopng-transplant-benchmark
linkeLi0421 Apr 22, 2026
cfb7b22
ntopng_transplant_fuzz_dissect_packet: regenerate from new merge output
linkeLi0421 Apr 22, 2026
b64bcf9
libredwg benchmark: regenerate crashes from post-merge binary
linkeLi0421 Apr 22, 2026
3844496
ghostscript gstoraster transplant: regen from 89-bug merge
linkeLi0421 Apr 22, 2026
f2e3640
gstoraster_fuzzer: disable fontconfig, strip -fno-sanitize-recover
linkeLi0421 Apr 22, 2026
d180503
gstoraster_fuzzer: export -Wno-error=implicit-function-declaration
linkeLi0421 Apr 23, 2026
681339e
gstoraster_fuzzer: add UBSAN_OPTIONS and AFL_SKIP_CRASHES
linkeLi0421 Apr 23, 2026
ebe0765
gstoraster_fuzzer: strip -fsanitize=shift,null for ghostpdl UB patterns
linkeLi0421 Apr 23, 2026
8ab335b
Merge pull request #8 from linkeLi0421/linke/ntopng-benchmark-regen
linkeLi0421 Apr 23, 2026
b749fb9
gstoraster_fuzzer: fix OSV-2022-339 crash log (local bug)
linkeLi0421 Apr 23, 2026
ca9babb
gstoraster_fuzzer: fix OSV-2022-232 crash log (testcase-only bug)
linkeLi0421 Apr 23, 2026
f046ca5
gstoraster_fuzzer: strip -fsanitize=undefined from Makefiles post-aut…
linkeLi0421 Apr 23, 2026
b4230f1
gstoraster_fuzzer: strip UBSAN per-check list, not -fsanitize=undefined
linkeLi0421 Apr 23, 2026
30525fa
Add original-crashes for 10 transplant benchmarks + fixes
linkeLi0421 Apr 24, 2026
713f7c6
Merge pull request #9 from linkeLi0421/transplant-original-crashes
linkeLi0421 Apr 24, 2026
ea93978
bug_metadata: align crash_file/line with regenerated crashes/
linkeLi0421 Apr 24, 2026
1cf6ca7
crashes: regenerate c-blosc2 OSV-2021-464 + htslib OSV-2020-999 with …
linkeLi0421 May 14, 2026
ea96248
original-crashes: regen non-comparable references for c-blosc2 OSV-20…
linkeLi0421 May 15, 2026
69d8342
c-blosc2_transplant_decompress_frame_fuzzer: regen with CMakeLists fix
linkeLi0421 May 26, 2026
b348a74
fill crash-log gaps across transplant benchmarks
linkeLi0421 May 26, 2026
e61b98a
libredwg: drop OSV-2021-495 + OSV-2023-416 from benchmark (65 -> 63)
linkeLi0421 May 26, 2026
20f4b5d
libredwg: drop OSV-2021-495 + OSV-2023-416 artifacts entirely
linkeLi0421 May 26, 2026
2a8f7fb
libredwg: drop accidentally-tracked bug_metadata.json.bak
linkeLi0421 May 26, 2026
ea8987b
libavc: regenerate benchmark with corrected OSV-2023-68 transplant
linkeLi0421 Jun 2, 2026
7cf0751
ndpi: drop OSV-2023-102 from benchmark (43 -> 42)
linkeLi0421 Jun 2, 2026
0413a55
ndpi: add dispatch-only (no-patch) control benchmark for RQ5
linkeLi0421 Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ VENV_ACTIVATE := .venv/bin/activate

${VENV_ACTIVATE}: requirements.txt
python3.10 -m venv .venv || python3 -m venv .venv
source ${VENV_ACTIVATE} && python3 -m pip install --upgrade pip setuptools && python3 -m pip install -r requirements.txt
source ${VENV_ACTIVATE} && python3 -m pip install --upgrade pip && python3 -m pip install -r requirements.txt && python3 -m pip install setuptools

install-dependencies: ${VENV_ACTIVATE}

Expand Down
31 changes: 31 additions & 0 deletions benchmarks/c-blosc2_transplant_decompress_frame_fuzzer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Use the committed merge container as base for identical build environment.
# This image has the exact same OS packages, library versions, and source tree
# that were used during bug transplant verification.
FROM c-blosc2-merge:79e921d9

# The merge container runs as a non-root user (agent). Switch back to root
# so downstream Dockerfiles (AFL++'s builder, benchmark-builder, etc.) can
# install packages and write to system directories.
USER root

# docker commit can snapshot a broken apt state - fix it so downstream
# Dockerfiles (e.g. AFL++'s builder.Dockerfile) can apt-get install.
RUN rm -rf /var/lib/apt/lists/* && mkdir -p /var/lib/apt/lists/partial && apt-get update

WORKDIR /src/c-blosc2

# Keep ASan stack-use-after-return detection enabled for direct testcase replay.
ENV ASAN_OPTIONS="detect_leaks=0:detect_stack_use_after_return=1"

# Raise libFuzzer's per-alloc / RSS cap from its 2048MB default. Some transplanted
# bugs (e.g. c-blosc2 OSV-2021-464) trigger a ~2GB malloc en route to the real
# memory-safety error; with the default cap libFuzzer aborts with
# `out-of-memory` and `-ignore_ooms=1` silently drops it. libFuzzer-family
# runners in fuzzbench/fuzzers/*/fuzzer.py splice $ADDITIONAL_ARGS onto the
# target command line, so this propagates automatically.
ENV ADDITIONAL_ARGS="-rss_limit_mb=8192"

# Bug transplant patches (re-applied by build.sh after checkout_commit.py resets source)
COPY patches/ /src/patches/
COPY seeds/ /src/benchmark_seeds/
COPY build.sh $SRC/
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project: c-blosc2
fuzz_target: decompress_frame_fuzzer
commit: 79e921d904d46fc9edc292e02a48f1aa54567a7d
commit_date: 2021-08-24T14:27:56+00:00
type: bug
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
{
"project": "c-blosc2",
"target_commit": "79e921d904d46fc9edc292e02a48f1aa54567a7d",
"dispatch_bytes": 2,
"total_bugs": 29,
"bugs": {
"OSV-2020-2184": {
"dispatch_value": 1,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/frame.c",
"crash_line": 1366,
"crash_function": "get_vlmeta_from_trailer"
},
"OSV-2021-21": {
"dispatch_value": 2,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc2.c",
"crash_line": 685,
"crash_function": "blosc_read_header"
},
"OSV-2021-22": {
"dispatch_value": 4,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/frame.c",
"crash_line": 1265,
"crash_function": "get_meta_from_header"
},
"OSV-2021-213": {
"dispatch_value": 8,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/zstd-1.4.8/decompress/zstd_ddict.c",
"crash_line": 215,
"crash_function": "ZSTD_freeDDict"
},
"OSV-2021-221": {
"dispatch_value": 16,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc-private.h",
"crash_line": 90,
"crash_function": "sw32_"
},
"OSV-2021-246": {
"dispatch_value": 32,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/frame.c",
"crash_line": 1455,
"crash_function": "get_vlmeta_from_trailer"
},
"OSV-2021-247": {
"dispatch_value": 64,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc2.c",
"crash_line": 685,
"crash_function": "blosc_read_header"
},
"OSV-2021-274": {
"dispatch_value": 128,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/frame.c",
"crash_line": 1289,
"crash_function": "get_meta_from_header"
},
"OSV-2021-369": {
"dispatch_value": 256,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc2.c",
"crash_line": 685,
"crash_function": "blosc_read_header"
},
"OSV-2021-404": {
"dispatch_value": 512,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc2.c",
"crash_line": 685,
"crash_function": "blosc_read_header"
},
"OSV-2021-429": {
"dispatch_value": 1024,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc-private.h",
"crash_line": 90,
"crash_function": "sw32_"
},
"OSV-2021-639": {
"dispatch_value": 2048,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc2.c",
"crash_line": 2622,
"crash_function": "_blosc_getitem"
},
"OSV-2022-4": {
"dispatch_value": 4096,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/zstd-1.4.8/decompress/zstd_ddict.c",
"crash_line": 134,
"crash_function": "ZSTD_initDDict_internal"
},
"OSV-2022-34": {
"dispatch_value": 8192,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/lz4-1.9.3/lz4.c",
"crash_line": 469,
"crash_function": "LZ4_wildCopy32"
},
"OSV-2022-486": {
"dispatch_value": 16384,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc2.c",
"crash_line": 3404,
"crash_function": "blosc2_get_io_cb"
},
"OSV-2023-51": {
"dispatch_value": 32768,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/zstd-1.4.8/decompress/zstd_ddict.c",
"crash_line": 215,
"crash_function": "ZSTD_freeDDict"
},
"OSV-2021-464": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc2.c",
"crash_line": 181,
"crash_function": "my_malloc"
},
"OSV-2021-481": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/zstd-1.4.8/decompress/zstd_ddict.c",
"crash_line": 134,
"crash_function": "ZSTD_initDDict_internal"
},
"OSV-2021-485": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc-private.h",
"crash_line": 90,
"crash_function": "sw32_"
},
"OSV-2021-487": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc-private.h",
"crash_line": 90,
"crash_function": "sw32_"
},
"OSV-2021-496": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc-private.h",
"crash_line": 90,
"crash_function": "sw32_"
},
"OSV-2021-498": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/frame.c",
"crash_line": 2107,
"crash_function": "frame_get_lazychunk"
},
"OSV-2021-526": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc-private.h",
"crash_line": 90,
"crash_function": "sw32_"
},
"OSV-2021-622": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/frame.c",
"crash_line": 1455,
"crash_function": "get_vlmeta_from_trailer"
},
"OSV-2021-997": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/zstd-1.4.8/decompress/zstd_ddict.c",
"crash_line": 134,
"crash_function": "ZSTD_initDDict_internal"
},
"OSV-2021-1791": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/zstd-1.4.8/decompress/zstd_ddict.c",
"crash_line": 134,
"crash_function": "ZSTD_initDDict_internal"
},
"OSV-2022-511": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/zstd-1.4.8/decompress/zstd_ddict.c",
"crash_line": 134,
"crash_function": "ZSTD_initDDict_internal"
},
"OSV-2022-1242": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/blosc/blosc2.c",
"crash_line": 685,
"crash_function": "blosc_read_header"
},
"OSV-2021-897": {
"dispatch_value": 0,
"triggered": true,
"crash_file": "/src/c-blosc2/internal-complibs/zstd-1.4.8/decompress/zstd_decompress.c",
"crash_line": 596,
"crash_function": "ZSTD_copyRawBlock"
}
}
}
Loading