Skip to main content
← All vulnerabilities
CVE-2026-90226

nfc: llcp: avoid userspace overflow on invalid optlen

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 more
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: nfc: llcp: avoid userspace overflow on invalid optlen nfc_llcp_getsockopt() casts optval to (u32 __user *) for put_user(), so the kernel always stores 4 bytes regardless of the caller-supplied optlen. The existing min_t(u32, len, sizeof(u32)) only clamps the length reported back to userspace; it does not constrain the store. A call with optlen < 4 therefore writes past the user buffer, violating the getsockopt(2) contract for all five supported optnames. Reject any call with optlen < sizeof(u32) up front. 'len' is int, so a plain size comparison would promote a negative optlen to size_t and slip past the check; an explicit 'len < 0' test is added first to catch negative values before the size compare.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 26fd76cab2e61cedc5c25f7151fb31b57ddc53c7 · fixed in 42859562b7cc4313a84a584f338118edb7087066; From 26fd76cab2e61cedc5c25f7151fb31b57ddc53c7 · fixed in 598dcd53c52f8eeb9dd5382198c03960d5d40fcd; From 26fd76cab2e61cedc5c25f7151fb31b57ddc53c7 · fixed in 7e40f2f5e7bc06c3ddef781180ce4f7994176547; From 26fd76cab2e61cedc5c25f7151fb31b57ddc53c7 · fixed in 35573c6cb081af2f4a7caeea291302aca5484526; From 26fd76cab2e61cedc5c25f7151fb31b57ddc53c7 · fixed in b4c5abaea06292e1dddb70eac1b51589b32c77a3; From 26fd76cab2e61cedc5c25f7151fb31b57ddc53c7 · fixed in 8bf228fa02b1ed8ce622fb81fa8edc42be9aeb67; From 26fd76cab2e61cedc5c25f7151fb31b57ddc53c7 · fixed in bd6f1277b62bc1df348ca21739df2bc546fcd493; From 26fd76cab2e61cedc5c25f7151fb31b57ddc53c7 · fixed in 99985bfa8336fadcc69190ba2dcbd5386af3d661

  • Linux Linux

    3.10

  • KernelLinux

    From 3.10.0 · fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6

References 8

git.kernel.org