Rust's core sales pitch is memory safety without a garbage collector. The borrow checker, the lifetime system, the type system — all exist to make a single guarantee: if your code compiles in safe Rust, it cannot produce undefined behavior. A newly publicized bug report demonstrates that guarantee has had a crack in it since at least 2014. The bug exploits covariant field assignment to bypass lifetime constraints on struct fields. In the proof-of-concept, a struct Q is declared with a 'static bound on T, but the compiler allows assignment of a reference with a shorter lifetime into the struct's field. A malicious Drop implementation then smuggles that reference into a 'static container. When the original value goes out of scope and gets deallocated, the container still holds a dangling reference — classic use-after-free, achieved entirely in safe Rust. The demonstration is clean and compact. A String is allocated on the stack. A reference to it is placed into the struct via the covariant assignment loophole. The Drop impl moves that reference into a global Mutex<Vec<Box >>. After the original String's scope ends, a new String is allocated over the same memory. Reading from the global container now yields the contents of the new allocation — XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX — not the original "hello world" string. AddressSanitizer correctly flags the access as stack-use-after-scope. The Rust Types Team's response, posted by @lcnr, is measured but revealing. The bug is classified P-high rather than P-critical — not because it's unimportant, but because its 11-year dormancy suggests it's hard to hit accidentally. The team notes that actual exploitation requires an "intentionally malicious Drop implementation," meaning accidental memory corruption from this specific bug is unlikely in practice. This is a reasonable triage call, but it doesn't erase the conceptual damage: the type system was supposed to make this category of bug impossible. The broader context matters. The Types Team has been working on foundational reforms — a next-generation trait solver, region constraint rework, and the broader Project Zero initiative aimed at eliminating all known type system unsoundnesses. This bug becomes Exhibit A for why that work is necessary. Rust's safety guarantees aren't just marketing — they're load-bearing for the entire ecosystem's trust model. Every unsafe audit, every safety argument in critical infrastructure, rests on the assumption that safe Rust is actually safe. The 11-year latency is both reassuring and unsettling. Reassuring because it confirms the bug is genuinely hard to trigger in normal code — no known real-world exploitation exists. Unsettling because it means the formal reasoning about Rust's type system had a gap that went undetected through years of academic scrutiny, fuzzing, and the Rust Secure Code Working Group's efforts. If this one hid for a decade, the question becomes: what else is hiding? For Rust's institutional credibility, the handling will matter more than the bug itself. Transparent disclosure, honest triage, and a fix shipped through the established process will reinforce trust. But the episode is a reminder that formal guarantees are only as strong as their implementation, and implementations are written by humans working in a type system of extraordinary complexity.