CVE-2026-31629 json
nfc: llcp: add missing return after LLCP_CLOSED checks
published 2026-04-24 6 mo ago modified 2026-10-15 25 d ago also EUVD-2026-25522
- cvss
- 8.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 16%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
nfc: llcp: add missing return after LLCP_CLOSED checks
In nfc_llcp_recv_hdlc() and nfc_llcp_recv_disc(), when the socket state is LLCP_CLOSED, the code correctly calls release_sock() and nfc_llcp_sock_put() but fails to return. Execution falls through to the remainder of the function, which calls release_sock() and nfc_llcp_sock_put() again. This results in a double release_sock() and a refcount underflow via double nfc_llcp_sock_put(), leading to a use-after-free.
Add the missing return statements after the LLCP_CLOSED branches in both functions to prevent the fall-through.
Patch / fix
- Linux Linux 5.10.258, 5.15.209, 6.1.175, 6.6.136, 6.12.83, 6.18.24, 6.19.14, 7.0.1, 7.1
- linux Debian 12 6.1.176-1
- linux Debian 13 6.12.85-1
- linux Debian 14 6.19.14-1
debian advisories DEBIAN-CVE-2026-31629
- linux Ubuntu 22.04 LTS 5.15.0-186.196
- linux Ubuntu 24.04 LTS 6.8.0-136.136
- linux Ubuntu 26.04 LTS 7.0.0-27.27
- linux-aws Ubuntu 22.04 LTS 5.15.0-1112.119
- linux-aws Ubuntu 24.04 LTS 6.8.0-1061.64
- linux-aws Ubuntu 26.04 LTS 7.0.0-1008.8
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1112.122
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1064.72
ubuntu advisories UBUNTU-CVE-2026-31629
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-livepatch-MICRO-6-0_Update_21 Linux Micro 6.1, Linux Micro 6.0 5-1.1
- kernel-livepatch-MICRO-6-0_Update_22 Linux Micro 6.1, Linux Micro 6.0 5-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_14 Linux Micro 6.1, Linux Micro 6.0 11-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_10 Linux Micro 6.1, Linux Micro 6.0 20-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_11 Linux Micro 6.1, Linux Micro 6.0 16-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_12 Linux Micro 6.1, Linux Micro 6.0 15-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_13 Linux Micro 6.1, Linux Micro 6.0 11-1.1
- kernel-livepatch-MICRO-6-0-RT_Update_15 Linux Micro 6.1, Linux Micro 6.0 10-1.1
suse advisories SUSE-SU-2026:23483-1SUSE-SU-2026:23484-1SUSE-SU-2026:23531-1SUSE-SU-2026:23532-1SUSE-SU-2026:23482-1SUSE-SU-2026:23541-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.37.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-azure openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.37.1
opensuse advisories openSUSE-SU-2026:21555-1openSUSE-SU-2026:10703-1
- git.kernel.org/stable/c/b2a23529593d011fb433a3d711fc597ed6a6bd2f commit
- git.kernel.org/stable/c/665315df9c3486cb213fc44d83cc8bcd47fe0d26 commit
- git.kernel.org/stable/c/9b49e2a4b8219a2fc5cebf94f4ec34e509aff8a6 commit
- git.kernel.org/stable/c/0eb1263a3b8c36418c9ba295c9ab3abed664edbf commit
- git.kernel.org/stable/c/796e0cac058252d0ad34ebe288e6f7979b5fc9b2 commit
- git.kernel.org/stable/c/8977fad2b3c6eefd414131168d597c5d1d5e1abf commit
- git.kernel.org/stable/c/ff3d9e8f7244293e303f7b6ef70774291c7c27e9 commit
- git.kernel.org/stable/c/aba4712e8f0381cd5d196534ce2ad082626a5ab6 commit
- git.kernel.org/stable/c/2b5dd4632966c39da6ba74dbc8689b309065e82c commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-31629 updated
kernel: nfc: llcp: add missing return after LLCP_CLOSED checks
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
cisa ICSA-26-295-16 updated cvss 8.8
Siemens SIMATIC S7-1500 TM MFP
-
Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystemaffected: mitigation, no fix available
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
Exploit prediction
0.25% chance of exploitation in the next 30 days, higher than 16% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.8 | CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected products
- Linux Linux
- Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem
Classification
- Weakness
-
- CWE-667 Improper Locking
- Technology feeds
References
- git.kernel.org /stable/c/b2a23529593d011fb433a3d711fc597ed6a6bd2f
- git.kernel.org /stable/c/665315df9c3486cb213fc44d83cc8bcd47fe0d26
- git.kernel.org /stable/c/9b49e2a4b8219a2fc5cebf94f4ec34e509aff8a6
-
git.kernel.org
/stable/c/0eb1263a3b8c36418c9ba295c9ab3abed664edbf
patch
-
git.kernel.org
/stable/c/796e0cac058252d0ad34ebe288e6f7979b5fc9b2
patch
-
git.kernel.org
/stable/c/8977fad2b3c6eefd414131168d597c5d1d5e1abf
patch
-
git.kernel.org
/stable/c/ff3d9e8f7244293e303f7b6ef70774291c7c27e9
patch
-
git.kernel.org
/stable/c/aba4712e8f0381cd5d196534ce2ad082626a5ab6
patch
-
git.kernel.org
/stable/c/2b5dd4632966c39da6ba74dbc8689b309065e82c
patch
- cert-portal.siemens.com /productcert/html/ssa-784472.html
Sources
- CVE List CVE-2026-31629
- NVD CVE-2026-31629
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.