---
id: CVE-2026-63831
title: |-
  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() …
summary: |-
  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() …
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
published: '2026-07-19'
updated: '2026-08-17'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-63831'
references:
  - url: 'https://git.kernel.org/stable/c/3a2b378b3a9ca75d3518d879148d2ad25b5714a9'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/7a831bcd0486788283ef35e396d4282ee01bb0d5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/84a04eb5b210643bd67aab81ff805d32f62aa865'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/86d531337ea1ba02d9f2bc830d07c683d9bfaade'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/993fd674fe85d114e6a8d3963033d4fbbc2170a8'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/bd968bdd568beacfdf98ec537a87527e85f1d0cf'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e28e7fd34c449028325322a3f5127b92594b7396'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ff976ef7c39199ebff33c18034636595016db9f0'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-63831.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-63831'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2502243'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-63831'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-63831'
  - url: >-
      https://lore.kernel.org/linux-cve-announce/2026071908-CVE-2026-63831-36ca@gregkh/T
  - url: 'https://access.redhat.com/errata/RHSA-2026:71213'
  - url: 'https://access.redhat.com/errata/RHSA-2026:71016'
  - url: 'https://access.redhat.com/errata/RHSA-2026:88687'
  - url: 'https://access.redhat.com/errata/RHSA-2026:71233'
  - url: 'https://access.redhat.com/errata/RHSA-2026:71232'
tags:
  - nvd
  - csaf
  - vex
  - red-hat
  - cve.org
epss: 0.00307
epssPercentile: 0.23663
ingestedAt: '2026-08-17T05:47:50.444Z'
vendor: Red Hat
product: Red Hat Enterprise Linux 9
affected:
  - enterprise_linux 10
  - enterprise_linux 9
  - enterprise_linux_baseos_v_8
  - enterprise_linux_crb_v_8
  - enterprise_linux_nfv_v_8
  - enterprise_linux_rt_v_8
patched:
  - enterprise_linux_baseos_v_8
  - enterprise_linux_crb_v_8
  - enterprise_linux_nfv_v_8
  - enterprise_linux_rt_v_8
cwe:
  - CWE-820
scores:
  nvd: 8.8
  vendor: 7
  cna: 8.8
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T15:31:21.214861Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **RHSA-2026:71213** · Red Hat · fixed in: Red Hat Enterprise Linux BaseOS (v. 8), Red Hat Enterprise Linux CRB (v. 8) · released 2026-09-24 · [advisory](https://access.redhat.com/errata/RHSA-2026:71213)
- **RHSA-2026:71016** · Red Hat · fixed in: Red Hat Enterprise Linux NFV (v. 8), Red Hat Enterprise Linux RT (v. 8) · released 2026-09-23 · [advisory](https://access.redhat.com/errata/RHSA-2026:71016)
- **Red Hat VEX** · Important · affected: Red Hat Enterprise Linux 9 · no fix planned: Red Hat Enterprise Linux 9 · updated 2026-10-23 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-63831.json)
- **RHSA-2026:88687** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream EUS (v. 10.0), Red Hat Enterprise Linux BaseOS EUS (v. 10.0), Red Hat Enterprise Linux CodeReady Linux Builder EUS (v. 10.0), Red Hat Enterprise Linux Real Time for NFV EUS (v. 10.0), Red Hat Enterprise Linux Real Time EUS (v. 10.0) · released 2026-10-23 · [advisory](https://access.redhat.com/errata/RHSA-2026:88687)
- **RHSA-2026:71233** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream (v. 10), Red Hat Enterprise Linux BaseOS (v. 10), Red Hat Enterprise Linux CodeReady Linux Builder (v. 10), Red Hat Enterprise Linux Real Time for NFV (v. 10), Red Hat Enterprise Linux Real Time (v. 10) · released 2026-09-24 · [advisory](https://access.redhat.com/errata/RHSA-2026:71233)
- **RHSA-2026:71232** · Red Hat · fixed in: Red Hat Enterprise Linux AppStream (v. 9), Red Hat Enterprise Linux BaseOS (v. 9), Red Hat Enterprise Linux CodeReady Linux Builder (v. 9), Red Hat Enterprise Linux Real Time for NFV (v. 9), Red Hat Enterprise Linux Real Time (v. 9) · released 2026-09-24 · [advisory](https://access.redhat.com/errata/RHSA-2026:71232)
