CVE-2026-23286

Updated on 25 Mar 2026

Severity

5.5 Medium severity

Details

CVSS score
5.5
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Overview

About vulnerability

In the Linux kernel, the following vulnerability has been resolved:

atm: lec: fix null-ptr-deref in lec_arp_clear_vccs

syzkaller reported a null-ptr-deref in lec_arp_clear_vccs(). This issue can be easily reproduced using the syzkaller reproducer.

In the ATM LANE (LAN Emulation) module, the same atm_vcc can be shared by multiple lec_arp_table entries (e.g., via entry->vcc or entry->recv_vcc). When the underlying VCC is closed, lec_vcc_close() iterates over all ARP entries and calls lec_arp_clear_vccs() for each matched entry.

For example, when lec_vcc_close() iterates through the hlists in priv->lec_arp_empty_ones or other ARP tables:

  1. In the first iteration, for the first matched ARP entry sharing the VCC, lec_arp_clear_vccs() frees the associated vpriv (which is vcc->user_back) and sets vcc->user_back to NULL.
  2. In the second iteration, for the next matched ARP entry sharing the same VCC, lec_arp_clear_vccs() is called again. It obtains a NULL vpriv from vcc->user_back (via LEC_VCC_PRIV(vcc)) and then attempts to dereference it via vcc->pop = vpriv->old_pop, leading to a null-ptr-deref crash.

Fix this by adding a null check for vpriv before dereferencing it. If vpriv is already NULL, it means the VCC has been cleared by a previous call, so we can safely skip the cleanup and just clear the entry’s vcc/recv_vcc pointers.

The entire cleanup block (including vcc_release_async()) is placed inside the vpriv guard because a NULL vpriv indicates the VCC has already been fully released by a prior iteration — repeating the teardown would redundantly set flags and trigger callbacks on an already-closing socket.

The Fixes tag points to the initial commit because the entry->vcc path has been vulnerable since the original code. The entry->recv_vcc path was later added by commit 8d9f73c0ad2f (“atm: fix a memory leak of vcc->user_back”) with the same pattern, and both paths are fixed here.

Details

Fixes

KernelCare state

Live-patch status from KernelCare for each operating system.

Operating system Status Covered kernels
AlmaLinux 9.2 ESU Released
24 kernels
  • 5.14.0-284.1101.el9_2.tuxcare.7.els20
  • 5.14.0-284.1101.el9_2.tuxcare.7.els21
  • 5.14.0-284.1101.el9_2.tuxcare.7.els23
  • 5.14.0-284.1101.el9_2.tuxcare.7.els22
  • 5.14.0-284.1101.el9_2.tuxcare.7.els14
  • 5.14.0-284.1101.el9_2.tuxcare.7.els18
  • 5.14.0-284.1101.el9_2.tuxcare.7.els16
  • 5.14.0-284.1101.el9_2.tuxcare.7.els15
  • 5.14.0-284.1101.el9_2.tuxcare.7.els17
  • 5.14.0-284.1101.el9_2.tuxcare.7.els19
  • 5.14.0-284.1101.el9_2.tuxcare.7.els24
  • 5.14.0-284.1101.el9_2.tuxcare.7.els25
  • 5.14.0-284.1101.el9_2.tuxcare.7.els26
  • 5.14.0-284.1101.el9_2.tuxcare.7.els27
  • 5.14.0-284.1101.el9_2.tuxcare.7.els28
  • 5.14.0-284.1101.el9_2.tuxcare.7.els29
  • 5.14.0-284.1101.el9_2.tuxcare.7.els30
  • 5.14.0-284.1101.el9_2.tuxcare.7.els31
  • 5.14.0-284.1101.el9_2.tuxcare.7.els32
  • 5.14.0-284.1101.el9_2.tuxcare.7.els35
  • 5.14.0-284.1101.el9_2.tuxcare.7.els34
  • 5.14.0-284.1101.el9_2.tuxcare.11.els1
  • 5.14.0-284.1101.el9_2.tuxcare.11.els2
  • 5.14.0-284.1101.el9_2.tuxcare.11.els3
AlmaLinux 9.6 ESU Released
10 kernels
  • 5.14.0-570.62.1.el9_6.tuxcare.1.els1
  • 5.14.0-570.62.1.el9_6.tuxcare.1.els2
  • 5.14.0-570.62.1.el9_6.tuxcare.1.els3
  • 5.14.0-570.62.1.el9_6.tuxcare.1.els4
  • 5.14.0-570.62.1.el9_6.tuxcare.1.els5
  • 5.14.0-570.62.1.el9_6.tuxcare.1.els6
  • 5.14.0-570.62.1.el9_6.tuxcare.1.els7
  • 5.14.0-570.62.1.el9_6.tuxcare.5.els1
  • 5.14.0-570.62.1.el9_6.tuxcare.5.els2
  • 5.14.0-570.62.1.el9_6.tuxcare.5.els3
Debian 11 Released
37 kernels
  • 5.10.46-5
  • 5.10.70-1
  • 5.10.46-4
  • 5.10.84-1
  • 5.10.92-1
  • 5.10.92-2
  • 5.10.103-1
  • 5.10.106-1
  • 5.10.113-1
  • 5.10.120-1
  • 5.10.127-1
  • 5.10.127-2
  • 5.10.136-1
  • 5.10.140-1
  • 5.10.149-1
  • 5.10.149-2
  • 5.10.158-2
  • 5.10.162-1
  • 5.10.179-1
  • 5.10.179-2
  • 5.10.179-3
  • 5.10.179-5
  • 5.10.191-1
  • 5.10.197-1
  • 5.10.178-3
  • 5.10.205-2
  • 5.10.205-1
  • 5.10.209-2
  • 5.10.216-1
  • 5.10.218-1
  • 5.10.221-1
  • 5.10.223-1
  • 5.10.226-1
  • 5.10.234-1
  • 5.10.237-1
  • 5.10.244-1
  • 5.10.247-1
Debian 11 cloud Released
17 kernels
  • 5.10.113-1
  • 5.10.179-2
  • 5.10.179-3
  • 5.10.179-5
  • 5.10.191-1
  • 5.10.197-1
  • 5.10.205-2
  • 5.10.209-2
  • 5.10.216-1
  • 5.10.218-1
  • 5.10.221-1
  • 5.10.223-1
  • 5.10.226-1
  • 5.10.234-1
  • 5.10.237-1
  • 5.10.244-1
  • 5.10.247-1
Debian 12 Planned
Debian 13 Planned
Ubuntu 22.04 Planned
Ubuntu 24.04 Planned