Fixing the Linux Kernel: Upstream Memory-Safety Contributions
Research / / 5 min read

Fixing the Linux Kernel: Upstream Memory-Safety Contributions

The same automated research pipeline that audits npm packages now reads kernel C and has landed 0sec-authored fixes in the mainline Linux kernel, each maintainer-reviewed and flowing into stable where applicable. Here's what merged, and how.

Finding a bug is the easy half. The hard half, the half that actually proves a security pipeline works, is getting a maintainer to accept your fix into the code that ships to everyone.

Over the past few weeks, 0sec’s automated security research has done exactly that in the place where the bar is highest: the mainline Linux kernel. Not a fork, not a write-up, not a “potential issue” filed into a tracker. Real patches, reviewed by the subsystem maintainers, merged into Linus Torvalds’ tree (or accepted upstream and queued for it), and flowing out to the stable trees that distributions ship.

Every one carries the same line in its permanent git history: “Found by 0sec automated security-research tooling.”

What landed

SubsystemBug classStatusCommit
Bluetooth (LE Audio CIS)use-after-freemerged to mainline + stablebfea6091
TIPC (crypto)use-after-freemerged to mainline + queued across supported stable treesbda33488
mac802154 (802.15.4 crypto)missing copy-on-writemerged to mainline + queued across supported stable trees84a04eb5
mlx5e (MACsec)metadata lifetime use-after-freemerged to mainline + queued to stablede74d8fd
xen-blkfrontsplit-request double completionmerged to mainline5d727203
NFC (digital layer)stack buffer overflowmaintainer tree, not yet mainline5cb0e4ac
NFC (LLCP)TLV integer underflow + OOB readmaintainer tree, not yet mainlineed85d4cb
accel/amdxdna (AMD NPU)NULL-deref DoS (missing command-BO check)merged to mainline + queued to stable261c1fe3
accel/amdxdna (AMD NPU)NULL-deref DoS (missing submit-op check)merged to mainline + queued to stable38953513
Marvell mwifiex (tdls)NULL-deref on missing HT-oper IEmerged to mainlinec3d68e29
mac802154 (802.15.4 llsec)frames shorter than the auth tagmerged to mainlinefd3a3f28
mctp-serialRX buffer overflow on zero-length framesmerged to mainline + backported to stable793b9b72
vxlanmissing CAP_NET_ADMIN on changelinkmerged to mainline + queued to stable3a61bd96
genevemissing CAP_NET_ADMIN on changelinkmerged to mainline + queued to stable8efb8f8b

Each mainline row links to the real commit, verifiable in the kernel’s own git, with our authorship attached.

Correction, 2026-08-02. When this was first published, the two NFC rows said “merged to mainline” and linked git.kernel.org/linus/.... That was wrong. Both fixes were accepted by the NFC maintainer and sit in the NFC subsystem tree awaiting a pull; neither is in Linus’s tree, and the git.kernel.org/linus/ links did not resolve. The mistake was in how we checked: a GitHub API call that returns 200 for any commit anywhere in the torvalds/linux fork network, including maintainer trees. The correct check is compare/<sha>...master returning ahead, and it returns diverged for both. The status column now says what is true, and the two links are removed rather than left pointing at nothing.

The same re-check found four merged fixes this table was missing, which are now added: mac802154 assoclen, mctp-serial, vxlan and geneve. Corrected total: 12 patches across 10 findings in mainline, none of them NFC.

How the pipeline gets there

The kernel work runs on the same principle as our package research: read the source, trace the data, prove the bug, then propose the minimal correct fix. The difference is the rigor the kernel community (rightly) demands before anything merges.

  1. Source analysis surfaces a candidate: an attacker-influenced length feeding a copy, a pointer used after a concurrent free, or a crypto path missing a guard its sibling already has.
  2. Verification before sending. Every patch is generated byte-exact from a real tree, apply-checked, and compile-clean. Where a bug has a public reproducer, we confirm the fix against it. For the NFC overflow, that meant a #syz test run on syzbot’s reproducer, which came back Tested-by: syzbot before the patch ever reached a maintainer.
  3. Upstream review. Maintainers and reviewers at Intel, Red Hat, and across the kernel community reviewed the patches. The TIPC fix carries three independent Reviewed-by tags. The NFC and 802.15.4 fixes carry maintainer review from Intel.

Pipeline Verification Funnel

The TIPC one shows exactly how these get found. The encrypt path had already been fixed for a use-after-free during network-namespace teardown, but the decrypt twin was left unguarded. That is incomplete-fix variant analysis: take a known, patched bug and ask whether its mirror image was missed. It was.

What this proves

Anyone can publish a “potential issue.” The bar that actually counts is the one almost no one clears: twelve 0sec-authored patches, across ten kernel findings and nine subsystems, merged into mainline Linux in a matter of weeks, each reviewed by the subsystem’s own maintainers, with stable backports flowing where applicable. (Published as “ten patches, nine findings, eight subsystems”; corrected 2026-08-02 along with the table above, which had two NFC fixes in the wrong column and four merged fixes missing.)

That’s not “we found something.” It’s in the tree, with our name on it.