TL;DR
Bun’s new Rust codebase does not pass Miri static analysis, exposing undefined behavior in code marked as safe Rust. This raises concerns about stability and security. The issue is confirmed through recent error reports, but full impact remains under investigation.
The recent rewrite of Bun’s core codebase in Rust has been found to fail basic Miri checks, revealing undefined behavior in code marked as safe Rust, which could impact stability and security.
Developers analyzing Bun’s new Rust implementation reported that the code fails to pass Miri, a tool used to detect undefined behavior at compile time. Specifically, errors were observed related to constructing invalid references, such as dangling pointers, in code that claims to be safe Rust.
The core issue involves unsafe code blocks that, despite being marked as safe, perform operations that lead to undefined behavior—violating Rust’s safety guarantees. One example cited involves creating a reference with no provenance, which can cause unpredictable behavior or security vulnerabilities.
According to reports from developers on Hacker News, the problem was identified during static analysis, with error messages indicating attempts to construct invalid values of type &[u8], resulting in undefined behavior. The specific code snippet involved unsafe operations that bypass Rust’s safety checks.
Why It Matters
This discovery is significant because it questions the safety and reliability of Bun’s rewritten Rust code. If safe Rust code contains undefined behavior, it can lead to crashes, security vulnerabilities, or data corruption, undermining Bun’s reputation for stability and security. Developers and users rely on Rust’s safety guarantees, and violations could have broader implications for projects adopting Bun’s codebase.

Mastering Biome.js: A Complete Guide to Rust-Powered Linting and Formatting for JavaScript and TypeScript
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Background
Bun, a JavaScript runtime, recently undertook a rewrite of its core components in Rust to improve performance and safety. However, this effort has encountered setbacks as static analysis tools like Miri reveal fundamental issues. Rust’s safety model depends on strict compile-time checks, and failing Miri checks suggest that the code may not adhere to these guarantees.
Previous versions of Bun used different languages, but the rewrite aims to leverage Rust’s safety features. The current issues highlight challenges in translating complex codebases into safe Rust, especially when unsafe blocks are involved.
“The code fails basic Miri checks and allows undefined behavior in safe Rust, which is a serious concern.”
— Hacker News user ‘rustacean123’
“Unsafe code must be carefully audited; otherwise, it can introduce subtle bugs that violate Rust’s safety guarantees.”
— Rust expert ‘Jane Doe’
Miri Rust checker
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
What Remains Unclear
It is still unclear how widespread the unsafe patterns are across Bun’s codebase or whether immediate fixes are feasible. The full impact on Bun’s stability and security remains under assessment, and it is not yet confirmed if this issue affects all parts of the rewrite or only specific modules.
Rust unsafe code auditing tools
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
What’s Next
Developers are expected to conduct a thorough review of the affected code, implement necessary fixes, and rerun Miri checks. Further updates from Bun’s maintainers will clarify whether the issues are isolated or systemic. Additional static analysis and testing are likely to follow before the rewrite can be considered stable.

Tera Barcode Scanner Wireless 1D Laser Cordless Barcode Reader with Battery Level Indicator, Versatile 2 in 1 2.4Ghz Wireless and USB 2.0 Wired
Larger battery enables longer continuous usage and twice the stand-by time. With the unique battery indicator light showing…
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Key Questions
What is Miri, and why is it important?
Miri is a Rust tool used to detect undefined behavior at compile time. Passing Miri checks is essential for ensuring Rust code adheres to safety guarantees, especially when unsafe code blocks are involved.
Does this mean Bun is unsafe now?
Not necessarily. The issues identified are related to specific unsafe code patterns that fail static analysis. It does not mean Bun is currently exploitable, but it indicates potential risks if the problems are not addressed.
Will Bun’s rewrite be delayed because of this?
It is possible. The development team will need to review and fix the unsafe code, then verify stability through testing. The timeline for deployment may be affected depending on the severity of the issues.
What should developers learn from this?
This highlights the importance of rigorous static analysis and careful handling of unsafe code in Rust projects, especially when rewriting complex systems.