GHSA-JMH7-F679-GHX4
Vulnerability from github – Published: 2026-07-19 18:31 – Updated: 2026-07-20 15:31In 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.
{
"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"
}
]
}
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.