CVE-2025-40043

net: nfc: nci: Add parameter validation for packet data

State
Published
Severity
8.8 High
Published
Oct 28, 2025
Updated
Aug 5, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

Description

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

net: nfc: nci: Add parameter validation for packet data

Syzbot reported an uninitialized value bug in nci_init_req, which was introduced by commit 5aca7966d2a7 ("Merge tag 'perf-tools-fixes-for-v6.17-2025-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools").

This bug arises due to very limited and poor input validation that was done at nic_valid_size(). This validation only validates the skb->len (directly reflects size provided at the userspace interface) with the length provided in the buffer itself (interpreted as NCI_HEADER). This leads to the processing of memory content at the address assuming the correct layout per what opcode requires there. This leads to the accesses to buffer of `skb_buff->data` which is not assigned anything yet.

Following the same silent drop of packets of invalid sizes at `nic_valid_size()`, add validation of the data in the respective handlers and return error values in case of failure. Release the skb if error values are returned from handlers in `nci_nft_packet` and effectively do a silent drop

Possible TODO: because we silently drop the packets, the call to `nci_request` will be waiting for completion of request and will face timeouts. These timeouts can get excessively logged in the dmesg. A proper handling of them may require to export `nci_request_cancel` (or propagate error handling from the nft packets handlers).

Scores

CVSSScoreVectorSource
3.18.8 HighCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 6a2968aaf50c7a22fced77a5e24aa636281efca8 to before 8fcc7315a10a84264e55bb65ede10f0af20a983fAffected
  • 6a2968aaf50c7a22fced77a5e24aa636281efca8 to before bfdda0123dde406dbff62e7e9136037e97998a15Affected
  • 6a2968aaf50c7a22fced77a5e24aa636281efca8 to before 0ba68bea1e356f466ad29449938bea12f5f3711fAffected
  • 6a2968aaf50c7a22fced77a5e24aa636281efca8 to before 74837bca0748763a77f77db47a0bdbe63b347628Affected
  • 6a2968aaf50c7a22fced77a5e24aa636281efca8 to before c395d1e548cc68e84584ffa2e3ca9796a78bf7b9Affected
  • 6a2968aaf50c7a22fced77a5e24aa636281efca8 to before 9c328f54741bd5465ca1dc717c84c04242fac2e1Affected
LinuxLinux
  • 3.2Affected
  • before 3.2Not affected
  • 5.15.195 through 5.15.*Not affected
  • 6.1.156 through 6.1.*Not affected
  • 6.6.112 through 6.6.*Not affected
  • 6.12.53 through 6.12.*Not affected
  • 6.17.3 through 6.17.*Not affected
  • 6.18 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.