Security Vulnerability Report
中文
CVE-2026-43291 CVSS 8.3 HIGH

CVE-2026-43291

Published: 2026-05-08 14:16:36
Last Modified: 2026-05-11 08:16:09
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: net: nfc: nci: Fix parameter validation for packet data Since commit 9c328f54741b ("net: nfc: nci: Add parameter validation for packet data") communication with nci nfc chips is not working any more. The mentioned commit tries to fix access of uninitialized data, but failed to understand that in some cases the data packet is of variable length and can therefore not be compared to the maximum packet length given by the sizeof(struct).

CVSS Details

CVSS Score
8.3
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H

Configurations (Affected Products)

No configuration data available.

Linux Kernel (包含 commit 9c328f54741b 的版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * PoC for CVE-2026-43291 * This code demonstrates the logic flaw in NFC NCI parameter validation. * It simulates sending a variable-length packet which would be rejected * by the vulnerable kernel checking against sizeof(struct). */ #include <stdio.h> #include <string.h> #include <stdlib.h> // Simulated NCI Data Header Structure (Fixed part) struct nci_data_hdr { unsigned char mt; unsigned char pbf; unsigned char gid; unsigned char oid; unsigned char plen; // Payload length }; int main() { // Scenario: A valid NCI packet with a payload of 10 bytes unsigned int header_size = sizeof(struct nci_data_hdr); unsigned int payload_size = 10; unsigned int total_packet_size = header_size + payload_size; printf("[*] NCI Header Size (sizeof struct): %d bytes\n", header_size); printf("[*] Valid Packet Total Size (Header + Payload): %d bytes\n", total_packet_size); // Vulnerability Logic Simulation // The buggy code checks: if (total_packet_size > header_size) return error; if (total_packet_size > header_size) { printf("[!] VULNERABILITY TRIGGERED: Packet rejected because it exceeds sizeof(struct).\n"); printf("[!] Result: Denial of Service (DoS) - NFC communication blocked.\n"); return 1; } printf("[+] Packet accepted (System patched).\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-43291", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2026-05-08T14:16:36.120", "lastModified": "2026-05-11T08:16:08.517", "vulnStatus": "Received", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: nfc: nci: Fix parameter validation for packet data\n\nSince commit 9c328f54741b (\"net: nfc: nci: Add parameter validation for\npacket data\") communication with nci nfc chips is not working any more.\n\nThe mentioned commit tries to fix access of uninitialized data, but\nfailed to understand that in some cases the data packet is of variable\nlength and can therefore not be compared to the maximum packet length\ngiven by the sizeof(struct)."}], "metrics": {"cvssMetricV31": [{"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H", "baseScore": 8.3, "baseSeverity": "HIGH", "attackVector": "ADJACENT_NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "LOW", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.5}]}, "references": [{"url": "https://git.kernel.org/stable/c/3b91160e9a91b5a2662875417dc42dc5b0bf03ea", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"}, {"url": "https://git.kernel.org/stable/c/498fc5d0d650c77e87fcc73808d4f43240c21805", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"}, {"url": "https://git.kernel.org/stable/c/571dcbeb8e635182bb825ae758399831805693c2", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"}, {"url": "https://git.kernel.org/stable/c/a24a8a582da4426b2042e510a1080df84083b51d", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"}, {"url": "https://git.kernel.org/stable/c/ad058a4317db7fdb3f09caa6ed536d24a62ce6a0", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"}, {"url": "https://git.kernel.org/stable/c/c692db813a7e3b7c3c17d6e9a3ad2a018bf1142b", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"}, {"url": "https://git.kernel.org/stable/c/f5218426f765eee22e178df9c126d974792fb6a5", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"}]}}