CVE-2026-74626 (GCVE-0-2026-74626)
Vulnerability from cvelistv5
Published
2026-08-22 15:32
Modified
2026-08-27 12:39
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
NTB: ntb_netdev: Preserve RX queue depth on allocation failure
ntb_netdev_rx_handler() hands the received skb to the network stack
before allocating its replacement. If the allocation fails, nothing is
reposted. Every failure therefore takes one buffer out of the RX queue
while the interface remains up, and enough failures eventually stall
reception.
A retry path could refill the queue later, but ntb_netdev has none.
Allocate the replacement first instead. If that fails, drop the packet
and repost the same skb. This keeps the queue full and lets packet
delivery resume as soon as memory is available again.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 548c237c0a9972df5d1afaca38aa733ee577128d Version: 548c237c0a9972df5d1afaca38aa733ee577128d Version: 548c237c0a9972df5d1afaca38aa733ee577128d Version: 548c237c0a9972df5d1afaca38aa733ee577128d Version: 548c237c0a9972df5d1afaca38aa733ee577128d Version: 548c237c0a9972df5d1afaca38aa733ee577128d Version: 548c237c0a9972df5d1afaca38aa733ee577128d Version: 548c237c0a9972df5d1afaca38aa733ee577128d |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ntb_netdev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6d7f8a23c130d768c0976c2578b214353674e18f",
"status": "affected",
"version": "548c237c0a9972df5d1afaca38aa733ee577128d",
"versionType": "git"
},
{
"lessThan": "18781cc0bfb5c7f2a51ac6d678a28f101b7c35c5",
"status": "affected",
"version": "548c237c0a9972df5d1afaca38aa733ee577128d",
"versionType": "git"
},
{
"lessThan": "272df0fbe6f3e04e22bc67fbdd9ac24586b942f4",
"status": "affected",
"version": "548c237c0a9972df5d1afaca38aa733ee577128d",
"versionType": "git"
},
{
"lessThan": "fcaf8ba7e56bb73319ac107a63b907d59536192c",
"status": "affected",
"version": "548c237c0a9972df5d1afaca38aa733ee577128d",
"versionType": "git"
},
{
"lessThan": "3f2a15f33f86f7bd5b920669fd40c06725d72a1e",
"status": "affected",
"version": "548c237c0a9972df5d1afaca38aa733ee577128d",
"versionType": "git"
},
{
"lessThan": "a4e340971fe8ccd245d206db4d43b2a0eec240bd",
"status": "affected",
"version": "548c237c0a9972df5d1afaca38aa733ee577128d",
"versionType": "git"
},
{
"lessThan": "755fd7843f300d724caceabdf9bb13adc8701540",
"status": "affected",
"version": "548c237c0a9972df5d1afaca38aa733ee577128d",
"versionType": "git"
},
{
"lessThan": "d2121faf133ac3bf9531b53a7e21273649a08517",
"status": "affected",
"version": "548c237c0a9972df5d1afaca38aa733ee577128d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ntb_netdev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.9"
},
{
"lessThan": "3.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "3.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNTB: ntb_netdev: Preserve RX queue depth on allocation failure\n\nntb_netdev_rx_handler() hands the received skb to the network stack\nbefore allocating its replacement. If the allocation fails, nothing is\nreposted. Every failure therefore takes one buffer out of the RX queue\nwhile the interface remains up, and enough failures eventually stall\nreception.\n\nA retry path could refill the queue later, but ntb_netdev has none.\nAllocate the replacement first instead. If that fails, drop the packet\nand repost the same skb. This keeps the queue full and lets packet\ndelivery resume as soon as memory is available again."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is triggered in ntb_netdev_rx_handler() on every Ethernet frame received on the NTB virtual netdev; in dual-controller storage and cluster deployments the NTB interconnect carries bridged or routed IP traffic, so a remote peer can deliver packets that reach this handler without local access to the victim.\nAC:L - An attacker can reliably trigger the failure by flooding the NTB link with packets while inducing GFP_ATOMIC allocation pressure through sustained traffic and/or local memory exhaustion; each failed netdev_alloc_skb permanently consumes one of the 100 RX slots with no recovery path until the interface is restarted.\nPR:N - Reception is driven by raw Ethernet frames from the NTB peer with no authentication, capability checks, or application-layer credentials on the receive path; any host that can send traffic over the established NTB link can reach ntb_netdev_rx_handler().\nUI:N - Exploitation requires only that the NTB netdev link already be up in its normal deployment configuration; no victim login, mount, file open, or other interactive action is needed beyond the attacker sending packets over the interconnect.\nS:U - The impact is permanent loss of receive capability on the NTB netdev within the same kernel security domain; it does not cross a VM, hypervisor, IOMMU, or other security-authority boundary.\nC:N - The defect only leaks RX queue entries on allocation failure and does not involve out-of-bounds access, use-after-free, or any memory read primitive that could disclose kernel data to the attacker.\nI:N - No kernel or user data is modified; the bug only fails to repost a receive buffer, causing progressive RX queue depletion rather than arbitrary memory writes or code execution.\nA:H - Each allocation failure permanently removes one RX buffer with no refill mechanism, and after NTB_RXQ_SIZE (100) failures reception on the NTB netdev stalls completely while the interface remains up, causing a persistent denial of service on a critical cluster interconnect until manual intervention."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T12:39:48.605Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6d7f8a23c130d768c0976c2578b214353674e18f"
},
{
"url": "https://git.kernel.org/stable/c/18781cc0bfb5c7f2a51ac6d678a28f101b7c35c5"
},
{
"url": "https://git.kernel.org/stable/c/272df0fbe6f3e04e22bc67fbdd9ac24586b942f4"
},
{
"url": "https://git.kernel.org/stable/c/fcaf8ba7e56bb73319ac107a63b907d59536192c"
},
{
"url": "https://git.kernel.org/stable/c/3f2a15f33f86f7bd5b920669fd40c06725d72a1e"
},
{
"url": "https://git.kernel.org/stable/c/a4e340971fe8ccd245d206db4d43b2a0eec240bd"
},
{
"url": "https://git.kernel.org/stable/c/755fd7843f300d724caceabdf9bb13adc8701540"
},
{
"url": "https://git.kernel.org/stable/c/d2121faf133ac3bf9531b53a7e21273649a08517"
}
],
"title": "NTB: ntb_netdev: Preserve RX queue depth on allocation failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74626",
"datePublished": "2026-08-22T15:32:08.687Z",
"dateReserved": "2026-08-15T05:44:03.921Z",
"dateUpdated": "2026-08-27T12:39:48.605Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…