Blog
About

Cloud & DevOpsTrend

Rust replaces C in Android’s Binder as memory bugs fall from 76% to under 20%

Linux merged the removal of Android’s C Binder driver on 24 October. Google’s Android figures, 2019–2025, show what memory-safe code did to its bug share.

Illustration: The TechBag Journal

Late on 24 October, US Pacific time, Linus Torvalds merged the driver changes for Linux 7.4 that delete the C version of Binder, the kernel driver every Android app and system service uses to talk to the others. Kroah-Hartman, who sent the changes, wrote: “the rust version is stable and will be used going forward in a few billion devices. Great job by those developers”. The merge removes 12 C files, about 11,400 lines.1 It is the newest point on a longer line: across Android as a whole, the share of security bugs caused by memory mistakes has fallen for six years.

01The line: Android's memory-safety share, 2019 to 2025

Google has published the series three times. In December 2022 it reported that memory-safety vulnerabilities fell from 223 in 2019 to 85 in 2022, from 76% to 35% of all Android vulnerabilities, and that Android 13 was the first release in which most new code was in a memory-safe language. It added: “correlation doesn’t necessarily mean causation”.3 In September 2024 the share was 24%, “well below the 70% industry norm”, with the 2024 count extrapolated to 36 (27 at the time).4 That norm is visible elsewhere: Chromium counts around 70% of its high-severity security bugs as memory-safety problems.6 In November 2025 Google reported the share “below 20% of total vulnerabilities for the first time”.5

Memory-safety bugs went from three in four Android vulnerabilities to under one in five

Memory-safety vulnerabilities as a share of all Android vulnerabilities, years Google published, 2019–2025

0255075100762019352022242024202025 (below)

%

Table view
Memory-safety share
201976
202235
202424
2025 (below)20

Source: Google Security Blog (Dec 2022, Sep 2024); Google (Nov 2025) · as of 13 November 2025 · 2025 is 'below 20%' with no exact figure, drawn at the 20% ceiling. Years without a published figure are omitted. Google calls the link to new-code language a correlation, not causal.

The 2025 post adds Google’s measured density: about 0.2 vulnerabilities per million lines of Rust, against “closer to 1,000” memory-safety vulnerabilities per million lines in its historical C and C++. Rust changes also spent about 25% less time in code review, and medium and large ones were rolled back about four times less often than C++ changes.5

02What drives it: what memory safety is, and why C allows the bugs

A program keeps its data in memory, in slots it asks for, uses and hands back. A memory-safety bug is a mistake in that bookkeeping: writing past the end of a slot (a buffer overflow), or using a slot after handing it back (a use-after-free). Either can let an attacker overwrite data the program trusts. C gives the programmer raw memory addresses and does not check what is done with them; that is what makes it fast and close to the hardware, and what lets these mistakes through. Java and Go check at run time and clean up memory automatically. Rust checks before the program runs: its compiler refuses code that breaks its ownership rules, except inside blocks marked unsafe, which is why it can be used where C is, in kernels and drivers.

Binder shows the bug class plainly. On 16 September a fuzzer-found use-after-free write in the C driver’s device-registration code was fixed.8 One bug proves nothing alone. Google’s engineers gave their reasons in the Rust driver’s commit: “We’re generally not proponents of rewrites”, but Binder “combines/nests 13 different locks, 7 reference counters, and atomic variables”, and Rust “prevents mistakes with ref counting, locking, bounds checking”. The Rust driver came out at 5,500 lines against 5,800 for C, on their count.2

The Rust driver ran alongside C for 13 months before the C one was removed

Rust Binder in the Linux kernel, September 2025 to October 2026

19 Sept 2025Rust Binder accepted
13 Nov 2025Google: first production Rust driver
16 Dec 2025First Rust Binder CVE
16 Sept 2026C driver bug fixed
24 Oct 2026C Binder removed
Table view
DateEventDetail
19 Sept 2025Rust Binder acceptedfirst shipped in Linux 6.18
13 Nov 2025Google: first production Rust driverAndroid's 6.12 kernel
16 Dec 2025First Rust Binder CVEin an unsafe block; fixed in 6.18.1
16 Sept 2026C driver bug fixeduse-after-free write, found by fuzzing
24 Oct 2026C Binder removedLinux 7.4 merge

Source: Linux kernel commits; CVE record; Google · as of 24 October 2026

Rust has limits its users record. The first CVE in the kernel’s Rust code, in December 2025, was in Rust Binder: a race inside an unsafe block that corrupted list pointers and crashed the kernel.7 About 4% of Android’s Rust sits in such blocks, and Google caught its first Rust memory-safety bug, in an image decoder, before release.5 Google’s 2024 finding is that “the problem is overwhelmingly with new code”, and that returns on rewrites “diminish over time as code gets older”.4

03What it means for a buyer

Nothing to switch or license. The C driver stays in every kernel up to 7.3, including the long-term branches device makers build on; 7.4 is the first without it.116 When a given phone runs Rust Binder depends on its maker’s kernel, which the buyer does not choose. What a fleet owner can see is the Android security patch level, and what a supplier can be asked for is the plan US agencies set out: build new product lines in memory-safe languages and publish a memory-safety roadmap for existing products by the end of 2025. CISA and the FBI call that voluntary, for products used in critical infrastructure.13

What to watch. The November Android Security Bulletin is due on Monday 2 November, under Google’s rule of the first Monday of each month.15 Google’s next annual memory-safety figure has no announced date; the last three came in December 2022, September 2024 and November 2025.345 Then Linux 7.4 itself, the first release with only the Rust driver: Linux 7.3 was released on 18 October.16

Sources

  1. Linux kernel, merge commit 330517c63aa9: char-misc-7.4-rc1 (Greg Kroah-Hartman, merged by Linus Torvalds) — 24 October 2026
  2. Linux kernel, commit eafedbc7c050: rust_binder: add Rust Binder driver (Alice Ryhl, Google) — 19 September 2025
  3. Google Security Blog, Memory Safe Languages in Android 13 — 1 December 2022
  4. Google Security Blog, Eliminating Memory Safety Vulnerabilities at the Source — 25 September 2024
  5. Google (Jeff Vander Stoep), Rust in Android: move fast and fix things — 13 November 2025
  6. The Chromium Projects, Memory safety (912 high or critical bugs since 2015) — undated page
  7. CVE-2025-68260, rust_binder: fix race condition on death_list — 16 December 2025
  8. Linux kernel, commit 30d15f44a9e5: binderfs: fix UAF write in binder_add_device — 16 September 2026
  9. LWN.net, Resistance to Rust abstractions for DMA mapping — 30 January 2025
  10. The Register, Linux royalty backs adoption of Rust for kernel code, says its rise is inevitable — 21 February 2025
  11. Phoronix, New Linux Patch Confirms: Rust Experiment Is Done, Rust Is Here To Stay — 12 December 2025
  12. The Register, Rust-style safety model for C++ 'rejected' as profiles take priority — 16 September 2025
  13. CISA and FBI, Product Security Bad Practices, version 2 — 17 January 2025
  14. StatCounter Global Stats, Mobile operating system market share, India — September 2026 data
  15. Android Security Bulletins overview (publication schedule; October bulletin 5 October 2026) — 5 October 2026
  16. kernel.org, Linux 7.3 release — 18 October 2026

Related on TechBag: the UEM and MDM guide, the vulnerability management guide and the developer tools guide.

Disclosure. TechBag is a software reseller: it earns a margin when a reader buys through it, including from vendors named here. The analysis is TechBag’s own; no vendor paid for or saw this piece before publication. Facts are labelled reported, TechBag count or our view.