Bynario disclosed CVE-2026-31532, a Linux kernel use-after-free flaw in net/can/ affecting SocketCAN CAN_RAW sockets since v4.1. The bug stems from a race between raw_release() and raw_rcv(): the kernel frees the per-CPU ro->uniq structure before RCU-deferred receiver callbacks have fully drained, allowing concurrent CAN frame reception to access freed memory. The issue can cause kernel memory corruption and may enable local privilege escalation where CAN support is reachable, including through virtual CAN interfaces commonly used for testing and development.
The vendor said its pipeline both discovered and validated the flaw, and a proof of concept reliably triggered the race through concurrent sender activity and socket teardown. An upstream fix was accepted that moves free_percpu(ro->uniq) out of raw_release() and into a socket destructor so memory is released only after the relevant RCU-protected callbacks complete. In a related evaluation of AI-assisted kernel research, Bynario reported that frontier models consistently found and validated this bug more effectively than small local models, although orchestrated local models improved substantially in discovery performance.

Get the actors, campaigns, and ATT&CK mapping behind it.
6 events from the most recent confirmed update back to the earliest known activity.
The Linux kernel CAN raw socket use-after-free later assigned CVE-2026-31532 was introduced by commit 514ac99c64b2, titled "can: fix multiple delivery of a single CAN frame for overlapping CAN filters." The write-up states affected versions begin with Linux v4.1.
When Bynario applied an orchestration framework covering threat modeling, discovery, review, and validation, local-model discovery improved substantially. The Qwen 3.6 models reached 80-100% discovery rates, though validation remained difficult and only one Qwen 3.6 27B run successfully triggered a vulnerability.
A Bynario case study evaluated local open-weight models against Opus 4.6 on discovering and validating CVE-2026-31532 in net/can/ and CVE-2026-31694 in fs/fuse/. In baseline testing, none of the local models found either bug across five runs per vulnerability, while Opus 4.6 found both in every run.
An upstream patch for CVE-2026-31532 was accepted, changing SocketCAN teardown so the per-CPU ro->uniq allocation is freed only after relevant RCU-protected callbacks complete. The patch was acknowledged by Oliver Hartkopp and signed off by Marc Kleine-Budde.
Samuel Page proposed an upstream fix for CVE-2026-31532 that moves free_percpu(ro->uniq) out of raw_release() into a raw-specific socket destructor. The accepted patch also sets sk->sk_destruct = raw_sock_destruct in raw_init().
While analyzing Linux kernel 7.0, Bynario's pipeline discovered and validated CVE-2026-31532, a race-condition use-after-free in SocketCAN CAN_RAW sockets between raw_release() and raw_rcv(). The validation used custom instrumentation and a proof-of-concept that triggered the race on a vcan0 interface.
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
Get the adversaries, campaigns, and ATT&CK mapping behind this technique, with detections ready to deploy.
4 references tracked. Mallory keeps watching after this page renders.
bynar.io
Open sourcebynar.io
Open sourcedocs.kernel.org
Open sourceoracle.github.io
Open sourceMap indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.