Skip to content
Heist/ feed
Back to feed
HighFix available

nfc: llcp: read llcp_sock->local under the socket lock in getsockopt

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: nfc: llcp: read llcp_sock->local under the socket lock in getsockopt nfc_llcp_getsockopt() read llcp_sock->local before lock_sock(sk) and then dereferenced the cached pointer inside the locked region. llcp_sock_bind() assigns and clears llcp_sock->local under the same socket lock, dropping the last reference on its error path. A getsockopt() racing an in-flight bind() can observe the pointer, block on lock_sock(), and then dereference a freed nfc_llcp_local once bind() has unwound. Move the llcp_sock->local read and the NULL check inside the lock_sock(sk) region so bind() cannot mutate or free the pointer between the load and the use.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.270, 5.15.221, 6.1.188, 6.12.110, 6.18.52, 6.6.157, 7.2.6
CVEs
CVE-2026-90225
Confirmed fixed CVEs
Not specified
Updated in this feed
5 Nov 2026, 16:34 UTC · Revision 1

Source evidence

nfc: llcp: read llcp_sock->local under the socket lock in getsockopt

core-osv · Original source

Published 17 Sept 2026, 16:07 UTC

In the Linux kernel, the following vulnerability has been resolved: nfc: llcp: read llcp_sock->local under the socket lock in getsockopt nfc_llcp_getsockopt() read llcp_sock->local before lock_sock(sk) and then dereferenced the cached pointer inside the locked region. llcp_sock_bind() assigns and clears llcp_sock->local under the same socket lock, dropping the last reference on its error path. A getsockopt() racing an in-flight bind() can observe the pointer, block on lock_sock(), and then dereference a freed nfc_llcp_local once bind() has unwound. Move the llcp_sock->local read and the NULL check inside the lock_sock(sk) region so bind() cannot mutate or free the pointer between the load and the use.

osv:CVE-2026-90225

Kernel

Fixed versions: 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6

Complete source record
{
  "id": "a4ee654ef1d3f659b6380cdbc0c93a7d48f6a1635a5df4ea9e6c6a18a455069a",
  "url": "https://osv.dev/vulnerability/CVE-2026-90225",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "nfc: llcp: read llcp_sock->local under the socket lock in getsockopt",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: nfc: llcp: read llcp_sock->local under the socket lock in getsockopt nfc_llcp_getsockopt() read llcp_sock->local before lock_sock(sk) and then dereferenced the cached pointer inside the locked region. llcp_sock_bind() assigns and clears llcp_sock->local under the same socket lock, dropping the last reference on its error path. A getsockopt() racing an in-flight bind() can observe the pointer, block on lock_sock(), and then dereference a freed nfc_llcp_local once bind() has unwound. Move the llcp_sock->local read and the NULL check inside the lock_sock(sk) region so bind() cannot mutate or free the pointer between the load and the use.",
    "evidence": "osv:CVE-2026-90225",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.270",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.221",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.188",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.157",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.110",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.52",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.6",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-90225",
      "aliases": [
        "CVE-2026-90225"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "26fd76cab2e61cedc5c25f7151fb31b57ddc53c7"
                },
                {
                  "fixed": "56fd158fef20268f48db6cdfe5d722e930134eda"
                },
                {
                  "fixed": "8ba8cec0586727cc135ca4827921fc7b52946d71"
                },
                {
                  "fixed": "ed5240bab3468988077fe8bf29b935eaecc9ff89"
                },
                {
                  "fixed": "fe65727a4a21b11c18eebae1338482767a897b76"
                },
                {
                  "fixed": "2d8ac24565be85bf56580b87bf1b874d35625eb5"
                },
                {
                  "fixed": "156e65bd29307f5053835bff60bc1ba342fa010f"
                },
                {
                  "fixed": "d1b73962675cdc5a58e2707e25b548d8b495fde0"
                },
                {
                  "fixed": "36812527052c5bfb1ec6c1e292d67a5bf76b750f"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90225.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "3.10.0"
                },
                {
                  "fixed": "5.10.270"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.221"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.188"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.157"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.110"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.52"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.6"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90225.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:44.320575804Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/156e65bd29307f5053835bff60bc1ba342fa010f",
        "https://git.kernel.org/stable/c/2d8ac24565be85bf56580b87bf1b874d35625eb5",
        "https://git.kernel.org/stable/c/36812527052c5bfb1ec6c1e292d67a5bf76b750f",
        "https://git.kernel.org/stable/c/56fd158fef20268f48db6cdfe5d722e930134eda",
        "https://git.kernel.org/stable/c/8ba8cec0586727cc135ca4827921fc7b52946d71",
        "https://git.kernel.org/stable/c/d1b73962675cdc5a58e2707e25b548d8b495fde0",
        "https://git.kernel.org/stable/c/ed5240bab3468988077fe8bf29b935eaecc9ff89",
        "https://git.kernel.org/stable/c/fe65727a4a21b11c18eebae1338482767a897b76",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90225.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-90225",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90225.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-90225",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 512416,
  "published_at": "2026-09-17T16:07:34.658+00:00"
}