CVE-2026-98483

nfc: fix use-after-free in nfc_get_local_general_bytes

State
Published
Severity
Not scored
Published
Oct 18, 2026
Updated
Oct 19, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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

nfc: fix use-after-free in nfc_get_local_general_bytes

Commit 6709d4b7bc2e ("net: nfc: Fix use-after-free caused by nfc_llcp_find_local") attempted to fix a use-after-free (UAF) issue by invoking nfc_llcp_local_put(local) after accessing local->gb. However, if the reference count drops to zero, local is freed immediately, leading to a use-after-free when callers access the returned pointer. Alternative approaches using dynamic allocation (e.g. kmemdup) introduced memory leaks because callers consistently treat the returned pointer as borrowed memory.

Fix this properly by refactoring nfc_llcp_general_bytes() and nfc_get_local_general_bytes() to accept a caller-provided output buffer (out_gb) and its maximum length (gb_max_len). The general bytes are safely copied into out_gb before calling nfc_llcp_local_put(local), ensuring safe lifetime management without ownership transfer complications.

Update all callers across drivers (microread, pn533, pn544, st21nfca, digital_dep, and nci) to provide their own destination buffers and pass them to nfc_get_local_general_bytes().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 96f2c6f272ec04083d828de46285a7d7b17d1aad to before 25bfa673adc70189c0bc872940421ae59f789cf6Affected
  • fc8429f8d86801f092fbfbd257c3af821ac0dcd3 to before 2b31d0cc95856c856ada91f943fb14dfdf29a923Affected
  • 425d9d3a92df7d96b3cfb7ee5c240293a21cbde3 to before c40f61a6a413f3eaf028e5fe367fd9749e503ab0Affected
  • 6709d4b7bc2e079241fdef15d1160581c5261c10 to before 19bcfc2a56d0b82919079b5424c5a9a0ac897dcfAffected
  • 6709d4b7bc2e079241fdef15d1160581c5261c10 to before d8c929e9afdbc33b1876ecb97a517e850449b5bdAffected
  • 6709d4b7bc2e079241fdef15d1160581c5261c10 to before 841af260ff477f6191872bc3b2e15488615c1827Affected
  • 6709d4b7bc2e079241fdef15d1160581c5261c10 to before 9ede11e12f965ace97c4e0f606667f24fb41e7e1Affected
  • 6709d4b7bc2e079241fdef15d1160581c5261c10 to before dcab71a7011918f6fdba7adcec02d217dcb84b8dAffected
  • dd6ff3f3862709ab1a12566e73b9d6a9b8f6e548Affected
  • b3ad46e155a6d91b36c6e892019a43e3ef3c696dAffected
  • e5207c1d69b1a9707615ab6ff9376e59fc096815Affected
  • 5.10.188 to before 5.10.271Affected
  • 5.15.121 to before 5.15.222Affected
  • 6.1.39 to before 6.1.189Affected
  • 5.4.251 to before 5.5Affected
  • 6.3.13 to before 6.4Affected
  • 6.4.4 to before 6.5Affected
LinuxLinux
  • 6.5Affected
  • before 6.5Not affected
  • 5.10.271 through 5.10.*Not affected
  • 5.15.222 through 5.15.*Not affected
  • 6.1.189 through 6.1.*Not affected
  • 6.6.158 through 6.6.*Not affected
  • 6.12.112 through 6.12.*Not affected
  • 6.18.55 through 6.18.*Not affected
  • 7.2.9 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.