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

nfc: nci: fix uninit-value in the RF discover/activated NTF handlers

nci_rf_discover_ntf_packet() and nci_rf_intf_activated_ntf_packet() each
parse a notification into an on-stack struct (nci_rf_discover_ntf /
nci_rf_intf_activated_ntf) that is not initialised. The RF
technology-specific parameters are only extracted when
rf_tech_specific_params_len is non-zero, so a notification that reports a
zero length leaves the rf_tech_specific_params union uninitialised - and
both handlers then pass it to nci_add_new_protocol(), which reads it:

- discover: nci_add_new_target() -> nci_add_new_protocol();
- activated: nci_target_auto_activated() -> nci_add_new_protocol().

nci_add_new_protocol() uses nfca_poll->nfcid1_len as both a branch
condition and a memcpy() length and copies nfcid1/sens_res/sel_res into
ndev->targets, which is later exposed to user space via NFC_CMD_GET_TARGET.

BUG: KMSAN: uninit-value in nci_add_new_protocol+0x624/0x6c0
nci_add_new_protocol+0x624/0x6c0
nci_ntf_packet+0x25b2/0x3c30
nci_rx_work+0x318/0x5d0
process_scheduled_works+0x84b/0x17a0
worker_thread+0xc10/0x11b0
kthread+0x376/0x500
Local variable ntf.i created at:
nci_ntf_packet+0xbc2/0x3c30

Zero-initialise both on-stack notifications so the union reads back as
zero when no technology-specific parameters are present.
Published: 2026-09-04
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises when the NFC subsystem parses an RF discover or activated notification packet without zero‑initialising the on‑stack structure that holds technology‑specific parameters. If the packet indicates zero length, the union within the structure remains uninitialised. Subsequent processing passes this stale data to a helper that copies content into a kernel target list and subsequently exposes it to user space via the NFC_CMD_GET_TARGET ioctl. This flow can leak uninitialised stack data, which may contain sensitive information. The flaw does not directly provide code execution but can divulge kernel memory to privileged user space, constituting an information‑disclosure risk.

Affected Systems

Affected realisations are Linux kernel builds that include the NFC (nci) driver before the patch commit that added proper zero‑initialisation to the on‑stack notification structures. Kernels preceding the commit address in the included references are therefore vulnerable. No official version range is listed, so all versions lacking this patch should be considered at risk.

Risk and Exploitability

No explicit CVSS score is provided and the EPSS value is not available, so the quantitative severity and exploitation probability are unknown. The bug requires a user to invoke the NFC subsystem, making it a local‑privileged attack surface. Because the kernel copies the uninitialised data and returns it through a user‑space interface, the attack does not lead to remote code execution, but it can expose sensitive stack contents to that user. The risk is moderate: the impact is limited to information disclosure, and exploiting it requires local access or control over the NFC device. The vulnerability is not listed in the CISA KEV catalog.

Generated by OpenCVE AI on September 4, 2026 at 21:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest kernel patch that includes the commit fixing the uninitialised buffer in the NFC driver.
  • If the NFC subsystem is not needed, disable or unload the relevant NFC driver modules to remove the attack surface.
  • Restrict access to the NFC_CMD_GET_TARGET ioctl by configuring SELinux, AppArmor or udev rule permissions to limit privileged user space interactions.

Generated by OpenCVE AI on September 4, 2026 at 21:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 04 Sep 2026 21:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-788

Fri, 04 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: nfc: nci: fix uninit-value in the RF discover/activated NTF handlers nci_rf_discover_ntf_packet() and nci_rf_intf_activated_ntf_packet() each parse a notification into an on-stack struct (nci_rf_discover_ntf / nci_rf_intf_activated_ntf) that is not initialised. The RF technology-specific parameters are only extracted when rf_tech_specific_params_len is non-zero, so a notification that reports a zero length leaves the rf_tech_specific_params union uninitialised - and both handlers then pass it to nci_add_new_protocol(), which reads it: - discover: nci_add_new_target() -> nci_add_new_protocol(); - activated: nci_target_auto_activated() -> nci_add_new_protocol(). nci_add_new_protocol() uses nfca_poll->nfcid1_len as both a branch condition and a memcpy() length and copies nfcid1/sens_res/sel_res into ndev->targets, which is later exposed to user space via NFC_CMD_GET_TARGET. BUG: KMSAN: uninit-value in nci_add_new_protocol+0x624/0x6c0 nci_add_new_protocol+0x624/0x6c0 nci_ntf_packet+0x25b2/0x3c30 nci_rx_work+0x318/0x5d0 process_scheduled_works+0x84b/0x17a0 worker_thread+0xc10/0x11b0 kthread+0x376/0x500 Local variable ntf.i created at: nci_ntf_packet+0xbc2/0x3c30 Zero-initialise both on-stack notifications so the union reads back as zero when no technology-specific parameters are present.
Title nfc: nci: fix uninit-value in the RF discover/activated NTF handlers
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-04T15:13:07.169Z

Reserved: 2026-08-26T14:34:25.793Z

Link: CVE-2026-80794

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T16:18:05.767

Modified: 2026-09-04T16:18:05.767

Link: CVE-2026-80794

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T21:30:07Z

Weaknesses
  • CWE-788

    Access of Memory Location After End of Buffer