You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-4Lines changed: 10 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,6 +41,7 @@ A curated list of awesome Rust analysis and verification tools, including linter
41
41
|[MirChecker](https://github.com/lizhuohua/rust-mir-checker)| A Simple Static Analysis Tool for Rust. Paper: [MirChecker, CCS'21](https://dl.acm.org/doi/10.1145/3460120.3484541)| MIR | Panic (including numerical), Lifetime Corruption (memory issues) | Abstract Interpretation | 2024-05-24 |
42
42
|[FFIChecker](https://github.com/lizhuohua/rust-ffi-checker)| A Static Analysis Tool For Detecting Memory Management Bugs Between Rust and C/C++. Paper: [FFIChecker, ESORICS'22](https://dl.acm.org/doi/10.1007/978-3-031-17143-7_33)| LLVM IR | Memory issues across the Rust/C FFI | Abstract Interpretation | 2022-05-31 |
43
43
|[RUPTA](https://github.com/rustanlys/rupta)| Supports pointer/alias analysis for Rust, operating on Rust MIR. It currently offers callsite-based pointer analysis. Paper: [RUPTA, CC'24](https://dl.acm.org/doi/10.1145/3640537.3641574), [Stack Filtering, CGO'25](https://dl.acm.org/doi/pdf/10.1145/3696443.3708921)| MIR | Not bugs, for callgraph construction | Callsite-based pointer analysis | 2025-06-17 |
44
+
|[Pincer](https://github.com/rustanlys/pincer)| Static analyzer for unsafe Rust memory-safety bugs. Paper: [Pincer, OOPSLA'26](https://dl.acm.org/doi/abs/10.1145/3798266)| MIR | Use-after-free, Double-free, Dangling pointer | Demand-driven IFDS alias analysis, Typestate analysis | 2026-04-14 |
44
45
|[Cocoon](https://github.com/PLaSSticity/Cocoon-implementation)| Static Information Flow Control in Rust. Paper: [Cocoon, OOPSLA'24](https://dl.acm.org/doi/pdf/10.1145/3649817)| Rust Source Code | Secrecy Leaks | Rust's type system and procedural macros | 2024-03-20 |
45
46
|[rustsp_analyzer](https://github.com/Artisan-Lab/rustsp_analyzer)| Fearless Unsafe. A More User-friendly Document for Unsafe Rust Programming Base on Refined Safety Properties. Paper: [Fearless Unsafe](https://arxiv.org/pdf/2412.06251)| HIR | Safety Properties | Summarization | 2025-01-01 |
46
47
|[AtomVChecker](https://github.com/AtomVChecker/rust-atomic-study/tree/main/section-5-detection/AtomVChecker)| Statically detect memory ordering misuses for Rust. Paper: [AtomVChecker, ISSRE'24](https://ieeexplore.ieee.org/document/10771495)| MIR | Atomic concurrency bugs and performance loss due to memory ordering misuse | Data-flow Analysis | 2025-06-27 |
@@ -59,11 +60,11 @@ A curated list of awesome Rust analysis and verification tools, including linter
59
60
60
61
| Name | Description | Working on | Bug Types | Technology | Last Commit Time |
|[miri](https://github.com/rust-lang/miri)| An interpreter for Rust's mid-level intermediate representation | MIR | Undefined Behavior | Abstract Interpretation | 2026-06-06 |
63
+
|[miri](https://github.com/rust-lang/miri)| An interpreter for Rust's mid-level intermediate representation. Paper: [Miri, POPL'26](https://dl.acm.org/doi/abs/10.1145/3776690)| MIR | Undefined Behavior | Abstract Interpretation | 2026-06-06 |
63
64
|[cargo-careful](https://github.com/RalfJung/cargo-careful)| Execute Rust code carefully, with extra checking along the way | - | Undefined Behavior | Enable Debug Assertion in std | 2026-04-01 |
64
65
|[cargo-fuzz](https://github.com/rust-fuzz/cargo-fuzz)| Command line helpers for fuzzing | Binary | Crashes, Panics, Memory errors | Fuzzing | 2026-05-26 |
|[Automated-Fuzzer](https://github.com/qarmin/Automated-Fuzzer)| Simple tool to create broken files and checking them with special apps | - | Panic | Fuzzing | 2026-05-19 |
|[RustHornBelt](https://gitlab.mpi-sws.org/iris/lambda-rust/-/tree/masters/rusthornbelt)| A Semantic Foundation for Functional Verification of Rust Programs with Unsafe Code. Paper: [RustHornBelt, PLDI'22](https://dl.acm.org/doi/10.1145/3519939.3523704)| 𝜆Rust | - | - | 2023-02-14 |
112
+
|[VerusBelt](https://zenodo.org/records/19613067)| A Semantic Foundation for Verus's Proof-Oriented Extensions to the Rust Type System. Paper: [VerusBelt, PLDI'26](https://iris-project.org/pdfs/2026-pldi-verusbelt.pdf), [Artifact](https://zenodo.org/records/19613067)| Rocq, Iris | Soundness of Verus proof-oriented extensions | Semantic Foundation | 2026-03-18 |
111
113
|[RefinedRust<sup>1</sup>](https://gitlab.mpi-sws.org/lgaeher/refinedrust-dev)| A Type System for High-Assurance Verification of Rust Programs. Paper: [RefinedRust, PLDI'24](https://dl.acm.org/doi/10.1145/3656422)| Radium | - | - | 2025-01-03 |
112
114
|[VeriFast<sup>2</sup>](https://github.com/verifast/verifast)| Research prototype tool for modular formal verification of C and Java programs. Paper: [VeriFast, NFM'11](https://doi.org/10.1007/978-3-642-20398-5_4)| - | - | Symbolic Execution | 2026-05-10 |
@@ -134,7 +136,7 @@ A curated list of awesome Rust analysis and verification tools, including linter
134
136
|[cargo-geiger](https://github.com/geiger-rs/cargo-geiger)| Detects usage of unsafe Rust in a Rust crate and its dependencies | Source Code | Unsafe code usage | Static Analysis | 2025-08-31 |
135
137
|[cargo-vet](https://github.com/mozilla/cargo-vet)| Supply-chain security for Rust - audit your dependencies for trustworthiness | Cargo.lock, Source | Untrusted dependencies | Supply Chain Auditing | 2026-04-19 |
136
138
|[cargo-auditable](https://github.com/rust-secure-code/cargo-auditable)| Make production Rust binaries auditable - embed dependency info into binaries | Binary | Dependency vulnerabilities in production binaries | Binary Auditing | 2026-05-28 |
137
-
|[cargo-scan](https://github.com/PLSysSec/cargo-scan)| A tool for auditing Rust crates - scans for unsafe patterns and security-sensitive operations | Source Code, MIR | Unsafe patterns, Security-sensitive operations | Static Analysis | 2026-06-05 |
139
+
|[cargo-scan](https://github.com/PLSysSec/cargo-scan)| A tool for auditing Rust crates - scans for unsafe patterns and security-sensitive operations. Paper: [Auditing Rust Crates Effectively, ESOP'26](https://link.springer.com/chapter/10.1007/978-3-032-22723-2_15)| Source Code, MIR | Unsafe patterns, Security-sensitive operations | Static Analysis | 2026-06-05 |
|[cargo-semver-checks](https://github.com/obi1kenobi/cargo-semver-checks)| Scan your Rust crate for semver violations | Rust ABI | Semver violations | Static Analysis | 2026-05-31 |
140
142
|[cargo-safety](https://github.com/alexkehayias/cargo-safety)| Provides safety checks for Rust projects by finding all uses of unsafe code in dependencies | Source Code | Unsafe code usage | Static Analysis | 2018-01-07 |
@@ -151,8 +153,11 @@ A curated list of awesome Rust analysis and verification tools, including linter
151
153
| CRUST | CRUST: Towards a Unified Cross-Language Program Analysis Framework for Rust. [CRUST, QRS'22](https://ieeexplore.ieee.org/document/10062430)| CRustIR based on MIR | Security (CFI vilation, Meta Data Leaking, Format String Attack), Memory issues(Out-of-bounds, Use-after-Free, Double-Free, Stack-Overflow, Buffer-Overflow), Arithmetic (Divide-by-zero, Integer-Overflow) | Program Analysis Framework |
152
154
| ACORN | ACORN: Towards a Holistic Cross-Language Program Analysis for Rust. [ACORN](https://csslab-ustc.github.io/publications/2023/acorn.pdf)| Wasm | Security (Tainted Variable, Dangerous Function, Format String Attack), Memory issues (Out-of-bounds, Use-after-Free, Double-Free, Stack-Overflow, Buffer-Overflow), Arithmetic (Divide-by-zero, Integer-Overflow) | Program Analysis Framework |
153
155
| Yu Zhang | Static Deadlock Detection for Rust Programs. [Yu Zhang](https://arxiv.org/abs/2401.01114)| MIR | Deadlock | Data-flow Analysis |
156
+
| Yu Zhang | Two Birds One Stone: Effective Static Detection of Resource and Communication Deadlocks in Rust Programs. [Automated Software Engineering'26](https://arxiv.org/abs/2401.01114)| MIR | Resource deadlock, Communication deadlock | Data-flow Analysis |
154
157
| Kaiwen Zhang | Automatically Transform Rust Source to Petri Nets for Checking Deadlocks. [Kaiwen Zhang](https://arxiv.org/abs/2212.02754)| MIR | Deadlock | Petri Nets |
155
158
| RustC4 | Leveraging Large Language Model to Assist Detecting Rust Code Comment Inconsistency. [ASE'24](https://dl.acm.org/doi/10.1145/3691620.3695010)| AST | Code Comment Inconsistency | LLM |
| HALURust | HALURust: Exploiting Hallucinations of Large Language Models to Detect Vulnerabilities in Rust. [arXiv'25](https://arxiv.org/abs/2503.10793)| Source Code | Vulnerabilities | LLM, Static Analysis |
156
161
| craft | Automated Fault Tree Generation for Rust Programs. [EDCC'24](https://doi.ieeecomputersociety.org/10.1109/EDCC61798.2024.00022)| - | Fault Tree | Static Program Analysis |
157
162
| PanicFI | An Infrastructure for Fixing Panic Bugs in Real-World Rust Programs. [PanicFI](https://www.arxiv.org/pdf/2408.03262)| HIR, AST | Fixing Panic Bugs | Pattern Matching |
158
163
| rustc++ | rustc++: Facilitating Advanced Analysis of Rust Code. [rustc++](https://dl.acm.org/doi/epdf/10.1145/3722041.3723102)| MIR, LLVM IR | Enhance MIR & pass metadata for analysis | Metadata |
@@ -168,6 +173,7 @@ A curated list of awesome Rust analysis and verification tools, including linter
168
173
| Rust-twins | Automatic Rust Compiler Testing through Program Mutation and Dual Macros Generation. [ASE'24](https://wzyang.cn/files/Rust_twins.pdf)| AST, HIR | Rust compiler crashes and differences | Differential testing, mutation, macroize components, LLM |
169
174
| LiteRSan | LiteRSan: Lightweight Memory Safety Via Rust-specific Program Analysis and Selective Instrumentation. [arxiv](https://arxiv.org/pdf/2509.16389)| MIR, LLVM IR | Memory access bugs | Fuzzing |
170
175
| FRIES | Fuzzing Rust Library Interactions via Efficient Ecosystem-Guided Target Generation. [FRIES, ISSTA'24](https://dl.acm.org/doi/pdf/10.1145/3650212.3680348)| MIR | Rust API interactions | Fuzzing |
0 commit comments