GHSA-JMH7-F679-GHX4

Vulnerability from github – Published: 2026-07-19 18:31 – Updated: 2026-07-20 15:31
VLAI
Details

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

nfc: hci: fix out-of-bounds read in HCP header parsing

Both nfc_hci_recv_from_llc() and nci_hci_data_received_cb() read packet->header from skb->data at function entry without first checking that the buffer holds at least one byte. A malicious NFC peer can send a 0-byte HCP frame that passes through the SHDLC layer and reaches these functions, causing an out-of-bounds heap read of packet->header. The same 0-byte frame, if queued as a non-final fragment, also causes the reassembly loop to underflow msg_len to UINT_MAX, triggering skb_over_panic() when the reassembled skb is written.

Fix this by adding a pskb_may_pull() check at the entry of each function before packet->header is first accessed. The existing pskb_may_pull() checks before the reassembled hcp_skb is cast to struct hcp_packet remain in place to guard the 2-byte HCP message header.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-63915"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-07-19T16:17:09Z",
    "severity": "HIGH"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfc: hci: fix out-of-bounds read in HCP header parsing\n\nBoth nfc_hci_recv_from_llc() and nci_hci_data_received_cb() read\npacket-\u003eheader from skb-\u003edata at function entry without first checking\nthat the buffer holds at least one byte. A malicious NFC peer can send\na 0-byte HCP frame that passes through the SHDLC layer and reaches\nthese functions, causing an out-of-bounds heap read of packet-\u003eheader.\nThe same 0-byte frame, if queued as a non-final fragment, also causes\nthe reassembly loop to underflow msg_len to UINT_MAX, triggering\nskb_over_panic() when the reassembled skb is written.\n\nFix this by adding a pskb_may_pull() check at the entry of each\nfunction before packet-\u003eheader is first accessed. The existing\npskb_may_pull() checks before the reassembled hcp_skb is cast to\nstruct hcp_packet remain in place to guard the 2-byte HCP message\nheader.",
  "id": "GHSA-jmh7-f679-ghx4",
  "modified": "2026-07-20T15:31:51Z",
  "published": "2026-07-19T18:31:45Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-63915"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/1905f5ec3641b2b234bb63549c8ca11ab85466eb"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/22d41b176b9989efd21c3b2d3abf6728f05b9d9a"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/37382293f174b82a0616c8295e32b1fc8e13d1ed"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/83b1362edc9d6ae376c6f36da116e2c70f2e70a6"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/b99366d74b535d0cadb1ef73e04639415d9ff3b7"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/c4cc6b3b0013acb3ed0b2b60e57dfae98647fe98"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ed6d5d97dad0334a7f43d218753429cbe2f70a4f"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/f040e590c035bfd9553fe79ee9585caf1b14d67b"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:A/AC:L/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…

Detection rules are retrieved from Rulezet.

Loading…

Loading…