Skip to main content
VulnerabilityPublished Updated

CVE-2026-63831: Linux kernel · mac802154: llsec: add skb_cow_data() before in-place crypto

Affects Linux kernelSource CVE Database V5

0

Not known to be exploited · CVSS 8.8 High · fixed in ff976ef7c39199ebff33c18034636595016db9f0 : patch Linux kernel soon.

Data as of 26 Oct 2026, 13:47 UTC

CVSS 3.1 base score
8.8High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.3% chance of exploitation in 30 days – higher than 23% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CISA SSVC
Exploitation
No evidence of active exploitation and no public proof of concept
Automatable
Attackers cannot reliably automate steps 1–4 of the kill chain
Technical impact
Total control over the software or total information disclosure

CISA SSVC assessment, 2026-10-16.

Patch
Available – fixed in ff976ef7c39199ebff33c18034636595016db9f0, e28e7fd34c449028325322a3f5127b92594b7396, bd968bdd568beacfdf98ec537a87527e85f1d0cf +5
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 19 Jul 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ 03556e4d0dbbbf4af9df76f4a3839c86f6afb015, < ff976ef7c39199ebff33c18034636595016db9f0
Fixed in
  • ff976ef7c39199ebff33c18034636595016db9f0
LinuxLinuxAffected
  • ≥ 03556e4d0dbbbf4af9df76f4a3839c86f6afb015, < e28e7fd34c449028325322a3f5127b92594b7396
Fixed in
  • e28e7fd34c449028325322a3f5127b92594b7396
LinuxLinuxAffected
  • ≥ 03556e4d0dbbbf4af9df76f4a3839c86f6afb015, < bd968bdd568beacfdf98ec537a87527e85f1d0cf
Fixed in
  • bd968bdd568beacfdf98ec537a87527e85f1d0cf
LinuxLinuxAffected
  • ≥ 03556e4d0dbbbf4af9df76f4a3839c86f6afb015, < 993fd674fe85d114e6a8d3963033d4fbbc2170a8
Fixed in
  • 993fd674fe85d114e6a8d3963033d4fbbc2170a8
LinuxLinuxAffected
  • ≥ 03556e4d0dbbbf4af9df76f4a3839c86f6afb015, < 86d531337ea1ba02d9f2bc830d07c683d9bfaade
Fixed in
  • 86d531337ea1ba02d9f2bc830d07c683d9bfaade
LinuxLinuxAffected
  • ≥ 03556e4d0dbbbf4af9df76f4a3839c86f6afb015, < 84a04eb5b210643bd67aab81ff805d32f62aa865
Fixed in
  • 84a04eb5b210643bd67aab81ff805d32f62aa865

Description

In the Linux kernel, the following vulnerability has been resolved: mac802154: llsec: add skb_cow_data() before in-place crypto llsec_do_encrypt_unauth(), llsec_do_encrypt_auth(), llsec_do_decrypt_unauth(), and llsec_do_decrypt_auth() all perform in-place cryptographic transformations on skb data. They build a scatterlist with sg_init_one() pointing into the skb's linear data area and then pass the same scatterlist as both src and dst to the crypto API (e.g. crypto_skcipher_encrypt/decrypt, crypto_aead_encrypt/decrypt). On the RX path, __ieee802154_rx_handle_packet() clones the received skb before handing it to each subscriber via ieee802154_subif_frame(). The cloned skb shares the same underlying data buffer via reference counting. When llsec_do_decrypt() subsequently modifies this shared buffer in place, it corrupts data that other clones -- potentially belonging to other sockets or subsystems -- still reference. On the TX path, similar data sharing can occur when an skb's head has been cloned (skb_cloned() returns true). The fix is to call skb_cow_data() before performing any in-place crypto operation. skb_cow_data() ensures that the skb's data area is not shared: if the skb head is cloned or the data spans multiple fragments, it copies the data into a private buffer that can be safely modified in place. This is the same pattern used by: - ESP (net/ipv4/esp4.c, net/ipv6/esp6.c) - MACsec (drivers/net/macsec.c) - WireGuard (drivers/net/wireguard/receive.c) - TIPC (net/tipc/crypto.c) Without this guard, in-place crypto on shared skb data leads to: - Silent data corruption of other skb clones - Use-after-free when the crypto API scatterwalk writes through a page that has already been freed by another clone's kfree_skb() - Kernel crashes under concurrent 802.15.4 traffic with security enabled (KASAN/KMSAN reports slab-use-after-free) Found by 0sec (https://0sec.ai) using automated source analysis.

References

Community reviews

Loading reviews…