GHSA-XJ24-P6PH-P2W7

Vulnerability from github – Published: 2026-09-17 18:31 – Updated: 2026-09-18 18:31
VLAI
Details

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

nfc: nci: fix double completion race in nci_data_exchange_complete

nci_close_device() and nci_rx_work can both call nci_data_exchange_complete() concurrently. After commit 4527025d440ce8 ("nfc: nci: fix circular locking dependency in nci_close_device") moved flush_workqueue(ndev->rx_wq) after mutex_unlock(&ndev->req_lock), rx_work is no longer serialized with the explicit completion call in the close path. Both callers read the non-NULL callback pointer and invoke rawsock_data_exchange_complete(), which calls sock_put() -- but only one sock_hold() was taken, so the second sock_put() underflows the refcount and frees the socket while it is still in use.

Replace the bare clear_bit(NCI_DATA_EXCHANGE) with test_and_clear_bit() so that only the first caller proceeds to invoke the callback.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-90224"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-09-17T17:17:17Z",
    "severity": "HIGH"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfc: nci: fix double completion race in nci_data_exchange_complete\n\nnci_close_device() and nci_rx_work can both call\nnci_data_exchange_complete() concurrently.  After commit 4527025d440ce8\n(\"nfc: nci: fix circular locking dependency in nci_close_device\") moved\nflush_workqueue(ndev-\u003erx_wq) after mutex_unlock(\u0026ndev-\u003ereq_lock),\nrx_work is no longer serialized with the explicit completion call in the\nclose path.  Both callers read the non-NULL callback pointer and invoke\nrawsock_data_exchange_complete(), which calls sock_put() -- but only one\nsock_hold() was taken, so the second sock_put() underflows the refcount\nand frees the socket while it is still in use.\n\nReplace the bare clear_bit(NCI_DATA_EXCHANGE) with\ntest_and_clear_bit() so that only the first caller proceeds to invoke\nthe callback.",
  "id": "GHSA-xj24-p6ph-p2w7",
  "modified": "2026-09-18T18:31:27Z",
  "published": "2026-09-17T18:31:56Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-90224"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/3f075832734005310740d148d1cf1c1e792ebdca"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/588ccd19a6e69eca72d54608c3ab3b45709b2305"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/8265a626cc14a48e46e6dc8c47667e72b4232ac2"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/9030a1bbe2c6b1e3e54cef462d159b5248f09fd2"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ba4c776af3dc21ed04e315e6545e99703bb1b53a"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/bfdf412208fea7fc0d5b32d68a35b25261917393"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/cf646a9f5554bc07d6ccb59c327812b3a0c6a368"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ee08414d78b851e3d1856d6e4d631939b01a1bbe"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ]
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…