{"id":23480397,"url":"https://github.com/blocksecteam/bpfchecker","last_synced_at":"2025-10-11T14:03:00.731Z","repository":{"id":267401395,"uuid":"868816309","full_name":"blocksecteam/BpfChecker","owner":"blocksecteam","description":"This is the repository for paper \"Toss a Fault to BpfChecker: Revealing Implementation Flaws for eBPF runtimes with Differential Fuzzing\" accepted to CCS 2024.","archived":false,"fork":false,"pushed_at":"2024-12-10T05:21:20.000Z","size":1255,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T22:54:58.996Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blocksecteam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-07T08:32:56.000Z","updated_at":"2025-04-12T06:07:15.000Z","dependencies_parsed_at":"2024-12-10T06:23:51.949Z","dependency_job_id":"e65d885f-9630-46dd-b21b-b356e2cc5fde","html_url":"https://github.com/blocksecteam/BpfChecker","commit_stats":null,"previous_names":["blocksecteam/bpfchecker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocksecteam%2FBpfChecker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocksecteam%2FBpfChecker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocksecteam%2FBpfChecker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocksecteam%2FBpfChecker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blocksecteam","download_url":"https://codeload.github.com/blocksecteam/BpfChecker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248975330,"owners_count":21192208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-24T20:12:30.494Z","updated_at":"2025-10-11T14:03:00.643Z","avatar_url":"https://github.com/blocksecteam.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BpfChecker\n\nThis is the repository for paper \"Toss a Fault to BpfChecker: Revealing Implementation Flaws for eBPF runtimes with Differential Fuzzing\" accepted to CCS 2024.\n\nCheck out our paper at [Toss a Fault to BpfChecker](https://dl.acm.org/doi/10.1145/3658644.3690237).\n\n# Tools\n\n## Module Structure\n\n- `bpf_ir`: lightweight eBPF IR\n- `rbpf_runner`: instrumented rBPF\n- `ubpf_runner`: instrumented Windows eBPF core VM\n\n## Requirements\n\nThe following toolchains are required to be installed in advanced:\n\n- Clang\n- Rust Toolchain\n- Ninja, Cmake\n\n### Demo Usage\n\n\u003e Note that the script is aimed at running on the Ubuntu host. This demo performs the differential fuzzing between the JIT and interpreter mode of the Solana rBPF.\n\nTo build the IR generator and the runner, run `build.sh`.\n\nAfter building the necessary, run fuzzer by `run.sh`. You can change the necessary path in the script. \n\nWhen correctly running the fuzzer, the output would be:\n```\n[-] Fuzzing iteration 0 completed in 0.369602 seconds.\n[-] Fuzzing iteration 1 completed in 0.461553 seconds.\n[-] Fuzzing iteration 2 completed in 0.37018 seconds.\n[-] Fuzzing iteration 3 completed in 0.370709 seconds.\n[-] Fuzzing iteration 4 completed in 0.387481 seconds.\n```\n\n## Trophy\n\nDetails of the found bugs and the fix commits are listed in https://gist.github.com/bpfchecker/34a31c23a2da08564577df1bc8d8fce8\n\n# Citation\n\nIf you use the related tools or the insights we observed in our paper, please considering cite our paper.\n\n```\n@inproceedings{10.1145/3658644.3690237,\nauthor = {Peng, Chaoyuan and Jiang, Muhui and Wu, Lei and Zhou, Yajin},\ntitle = {Toss a Fault to BpfChecker: Revealing Implementation Flaws for eBPF runtimes with Differential Fuzzing},\nyear = {2024},\nisbn = {9798400706363},\npublisher = {Association for Computing Machinery},\naddress = {New York, NY, USA},\nurl = {https://doi.org/10.1145/3658644.3690237},\ndoi = {10.1145/3658644.3690237},\nbooktitle = {Proceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security},\npages = {3928–3942},\nnumpages = {15},\nkeywords = {EBPF, differential fuzzing, software security},\nlocation = {Salt Lake City, UT, USA},\nseries = {CCS '24}\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblocksecteam%2Fbpfchecker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblocksecteam%2Fbpfchecker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblocksecteam%2Fbpfchecker/lists"}