A new open-source framework is making it easier for developers to identify and address vulnerabilities in Internet Computer (ICP) canisters. Canfuzz, built by the team behind canister_fuzzing, combines automated coverage-guided fuzzing with a lightweight ICP emulator to provide targeted testing for WebAssembly-based smart contracts.
Fuzzing is a method of testing software by supplying unexpected or random inputs to uncover bugs. While traditional fuzzers work well for standard programs, ICP canisters present challenges due to their stateful nature and the WebAssembly sandbox environment. Canfuzz aims to bridge this gap by instrumenting compiled Wasm binaries to track branch coverage and generate inputs that explore new code paths.
The framework integrates LibAFL, a tool for scalable fuzzing, with PocketIC, an ICP emulator, allowing developers to test canisters without modifying the original source code. When a crash or violation occurs, Canfuzz records the input responsible, enabling precise debugging and reproducing errors.
Getting started is straightforward for Rust developers. After adding the Canfuzz crate to a project, users can define a fuzzer orchestrator to manage the testing environment and specify which canister methods to call. The framework then runs the fuzzer, producing a dashboard of interesting inputs and detected crashes.
By offering a specialised approach for ICP canisters, Canfuzz provides developers with a practical tool to strengthen security, improve code quality and reduce vulnerabilities in applications built on the Internet Computer.
The Canfuzz repository and documentation are available on GitHub, and the crate can be found on Crates.io.
Dear Reader,
Ledger Life is an independent platform dedicated to covering the Internet Computer (ICP) ecosystem and beyond. We focus on real stories, builder updates, project launches, and the quiet innovations that often get missed.
We’re not backed by sponsors. We rely on readers like you.
If you find value in what we publish—whether it’s deep dives into dApps, explainers on decentralised tech, or just keeping track of what’s moving in Web3—please consider making a donation. It helps us cover costs, stay consistent, and remain truly independent.
Your support goes a long way.
🧠 ICP Principal: ins6i-d53ug-zxmgh-qvum3-r3pvl-ufcvu-bdyon-ovzdy-d26k3-lgq2v-3qe
🧾 ICP Address: f8deb966878f8b83204b251d5d799e0345ea72b8e62e8cf9da8d8830e1b3b05f
🪙 BTC Wallet: bc1pp5kuez9r2atdmrp4jmu6fxersny4uhnaxyrxau4dg7365je8sy2q9zff6p
Every contribution helps keep the lights on, the stories flowing, and the crypto clutter out.
Thank you for reading, sharing, and being part of this experiment in decentralised media.
—Team Ledger Life




