Refine your search
15166 vulnerabilities found for by Linux
CVE-2026-80725 (GCVE-0-2026-80725)
Vulnerability from cvelistv5
Published
2026-08-29 06:39
Modified
2026-08-29 06:40
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: gro: properly validate BIG TCP aggregation criteria
When GRO attempts to aggregate packets beyond GRO_LEGACY_MAX_SIZE (64KB),
BIG TCP should only be permitted for plain IPv4 TCP and plain IPv6 TCP
(with sufficient MAC header room to insert the temporary HBH jumbo header).
However, commit b1a78b9b9886 ("net: add support for ipv4 big tcp")
loosened the check in skb_gro_receive(), leading to several issues:
1. skb_gro_receive() checked skb_headroom(p) instead of the actual space
before the MAC header (p->mac_header). Because skb_headroom(p) includes
mac_len, crafted frames (e.g. injected via AF_PACKET) can pass the check
with p->mac_header < 8 bytes. When ipv6_gro_complete() inserts the
temporary HBH jumbo header, the memmove() starts before skb->head,
causing an out-of-bounds write and wrapping skb->mac_header.
2. It allowed non-IP protocols such as software VLAN (ETH_P_8021Q /
ETH_P_8021AD) to aggregate beyond 64KB because
p->protocol != ETH_P_IPV6 was true.
3. It checked p->encapsulation instead of NAPI_GRO_CB(skb)->encap_mark,
allowing encapsulated flows (e.g. SIT / IPv6-in-IPv4) to aggregate
beyond 64KB.
Fix skb_gro_receive() to strictly enforce:
- NAPI_GRO_CB(skb)->proto == IPPROTO_TCP
- Not encapsulated (!NAPI_GRO_CB(skb)->encap_mark && !p->encapsulation)
- Protocol must be either ETH_P_IP or ETH_P_IPV6
- If ETH_P_IPV6, p->mac_header must be at least
sizeof(struct hop_jumbo_hdr)
Returning -E2BIG from skb_gro_receive() ensures that packets which cannot
become BIG TCP are cleanly flushed at <= 64KB and delivered intact without
dropping.
This issue does not exist in mainline (7.0+) because the subsystem was
rewritten in commit 81be30c1f5f2 ("net/ipv6: Drop HBH for BIG TCP on RX
side"), making this fix relevant only for older stable branches like
6.18.y.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/gro.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "37a5dcd6837fc2afc44a7bc3ed8af4e983783d46",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
},
{
"lessThan": "e907bf694ed55bdfe421be99dba35751a655df25",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
},
{
"lessThan": "03cb8cc2961f5f781d12e903782cb3815ed84b1c",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
},
{
"lessThan": "3ce832e2bd431d0c12ba525ed73ad8fbc4191da5",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
},
{
"lessThan": "81be30c1f5f2bffda1f04c0efd0746af10b9643a",
"status": "affected",
"version": "0fe79f28bfaf73b66b7b1562d2468f94aa03bd12",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/gro.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"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.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: gro: properly validate BIG TCP aggregation criteria\n\nWhen GRO attempts to aggregate packets beyond GRO_LEGACY_MAX_SIZE (64KB),\nBIG TCP should only be permitted for plain IPv4 TCP and plain IPv6 TCP\n(with sufficient MAC header room to insert the temporary HBH jumbo header).\n\nHowever, commit b1a78b9b9886 (\"net: add support for ipv4 big tcp\")\nloosened the check in skb_gro_receive(), leading to several issues:\n\n1. skb_gro_receive() checked skb_headroom(p) instead of the actual space\n before the MAC header (p-\u003emac_header). Because skb_headroom(p) includes\n mac_len, crafted frames (e.g. injected via AF_PACKET) can pass the check\n with p-\u003emac_header \u003c 8 bytes. When ipv6_gro_complete() inserts the\n temporary HBH jumbo header, the memmove() starts before skb-\u003ehead,\n causing an out-of-bounds write and wrapping skb-\u003emac_header.\n2. It allowed non-IP protocols such as software VLAN (ETH_P_8021Q /\n ETH_P_8021AD) to aggregate beyond 64KB because\n p-\u003eprotocol != ETH_P_IPV6 was true.\n3. It checked p-\u003eencapsulation instead of NAPI_GRO_CB(skb)-\u003eencap_mark,\n allowing encapsulated flows (e.g. SIT / IPv6-in-IPv4) to aggregate\n beyond 64KB.\n\nFix skb_gro_receive() to strictly enforce:\n- NAPI_GRO_CB(skb)-\u003eproto == IPPROTO_TCP\n- Not encapsulated (!NAPI_GRO_CB(skb)-\u003eencap_mark \u0026\u0026 !p-\u003eencapsulation)\n- Protocol must be either ETH_P_IP or ETH_P_IPV6\n- If ETH_P_IPV6, p-\u003emac_header must be at least\n sizeof(struct hop_jumbo_hdr)\n\nReturning -E2BIG from skb_gro_receive() ensures that packets which cannot\nbecome BIG TCP are cleanly flushed at \u003c= 64KB and delivered intact without\ndropping.\n\nThis issue does not exist in mainline (7.0+) because the subsystem was\nrewritten in commit 81be30c1f5f2 (\"net/ipv6: Drop HBH for BIG TCP on RX\nside\"), making this fix relevant only for older stable branches like\n6.18.y."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:40:30.300Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/37a5dcd6837fc2afc44a7bc3ed8af4e983783d46"
},
{
"url": "https://git.kernel.org/stable/c/e907bf694ed55bdfe421be99dba35751a655df25"
},
{
"url": "https://git.kernel.org/stable/c/03cb8cc2961f5f781d12e903782cb3815ed84b1c"
},
{
"url": "https://git.kernel.org/stable/c/3ce832e2bd431d0c12ba525ed73ad8fbc4191da5"
},
{
"url": "https://git.kernel.org/stable/c/81be30c1f5f2bffda1f04c0efd0746af10b9643a"
}
],
"title": "net: gro: properly validate BIG TCP aggregation criteria",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80725",
"datePublished": "2026-08-29T06:39:35.212Z",
"dateReserved": "2026-08-26T14:34:25.789Z",
"dateUpdated": "2026-08-29T06:40:30.300Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80724 (GCVE-0-2026-80724)
Vulnerability from cvelistv5
Published
2026-08-28 07:03
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ptp: vmclock: prevent read-only mappings from becoming writable
vmclock_miscdev_mmap() rejects writable mappings of the shared vmclock
ABI page with -EROFS, but leaves VM_MAYWRITE set. Userspace can map the
page read-only and then upgrade it to writable with mprotect(), after
which the guest can corrupt the host-written timekeeping data (sequence
counter, UTC time, TSC offset) that the vmclock ABI defines as read-only.
Clear VM_MAYWRITE on the read-only path so the mapping cannot be
upgraded, as i915 does for its read-only objects and as fixed in drm/vc4
(CVE-2026-68445) and drm/panthor (CVE-2024-53071).
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/ptp/ptp_vmclock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5b4f2bec7bea6c04084d720d731bedee7caf878d",
"status": "affected",
"version": "20503272422693d793b84f88bf23fe4e955d3a33",
"versionType": "git"
},
{
"lessThan": "2496e141827102d6af512950057d402a2cfb2bfc",
"status": "affected",
"version": "20503272422693d793b84f88bf23fe4e955d3a33",
"versionType": "git"
},
{
"lessThan": "2e596e7814ba38cdc129991058b6c254ed37cb11",
"status": "affected",
"version": "20503272422693d793b84f88bf23fe4e955d3a33",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/ptp/ptp_vmclock.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.47",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.1",
"versionType": "semver"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.47",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.11",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.1",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nptp: vmclock: prevent read-only mappings from becoming writable\n\nvmclock_miscdev_mmap() rejects writable mappings of the shared vmclock\nABI page with -EROFS, but leaves VM_MAYWRITE set. Userspace can map the\npage read-only and then upgrade it to writable with mprotect(), after\nwhich the guest can corrupt the host-written timekeeping data (sequence\ncounter, UTC time, TSC offset) that the vmclock ABI defines as read-only.\n\nClear VM_MAYWRITE on the read-only path so the mapping cannot be\nupgraded, as i915 does for its read-only objects and as fixed in drm/vc4\n(CVE-2026-68445) and drm/panthor (CVE-2024-53071)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local syscalls to open /dev/vmclock0, mmap the shared ABI page read-only, mprotect it writable, and write host-authoritative fields; there is no network, Bluetooth, or physical-device path to vmclock_miscdev_mmap().\nAC:L - Any process that can open the misc device can reliably mmap(PROT_READ), mprotect(PROT_WRITE), and corrupt the page without races, special memory layout, or timing; VM_MAYWRITE left set is the sole missing check and mprotect honors it per mm/mprotect.c.\nPR:L - vmclock_miscdev_open() performs no capability checks; AWS ClockBound documents chmod a+r on /dev/vmclock0 for unprivileged latency-sensitive apps on EC2/Amazon Linux, so a normal tenant user on affected cloud VMs can reach the bug without root or user-namespace admin caps.\nUI:N - The attacker process performs the full open/mmap/mprotect/write sequence itself; no victim mount, click, or other user action is required beyond the attacker already having local shell access.\nS:C - The vmclock ABI page is hypervisor-written shared memory whose seq_count, UTC time, and TSC offset must stay guest-read-only; mprotect bypass lets a guest user corrupt that host-authoritative data, crossing the guest/hypervisor trust boundary rather than staying within guest-kernel scope alone.\nC:H - Unauthorized writes let an attacker race seq_count updates and corrupt in-flight host-populated fields, yielding torn reads of timekeeping data to other guest consumers and potentially exposing transient host-written values that read-only mmap alone would not reliably observe.\nI:H - After mprotect, the attacker gains arbitrary modification of host-written vmclock_abi fields (seq_count, disruption_marker, counter_value, time_sec, flags), breaking integrity of authoritative timekeeping and migration/disruption signaling relied on by guest kernel PTP and userspace ClockBound consumers.\nA:H - Corrupting seq_count, clock_status, or disruption/vm_generation markers can force ETIMEDOUT/-EINVAL in vmclock_get_crosststamp, trigger false migration/disruption handling, and cause latency-sensitive services to withdraw or fail, producing severe availability loss on affected cloud VMs."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:41.352Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5b4f2bec7bea6c04084d720d731bedee7caf878d"
},
{
"url": "https://git.kernel.org/stable/c/2496e141827102d6af512950057d402a2cfb2bfc"
},
{
"url": "https://git.kernel.org/stable/c/2e596e7814ba38cdc129991058b6c254ed37cb11"
}
],
"title": "ptp: vmclock: prevent read-only mappings from becoming writable",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80724",
"datePublished": "2026-08-28T07:03:08.410Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:41.352Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80723 (GCVE-0-2026-80723)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
of: reserved_mem: prevent OOB when too many dynamic regions are defined
On boot, fdt_scan_reserved_mem() saves each dynamically-placed
/reserved-memory subnode into a local array of size
MAX_RESERVED_REGIONS.
If the device tree defines more than MAX_RESERVED_REGIONS
dynamically-placed regions, fdt_scan_reserved_mem() writes past the
end of the local array.
Add a bounds check that logs an error and skips the excess regions,
restoring the original behavior.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/of/of_reserved_mem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "68d27250c9e81ab7764603e346c2b1017cb53adf",
"status": "affected",
"version": "9a0fe62f93ede02c27aaca81112af1e59c8c0979",
"versionType": "git"
},
{
"lessThan": "cfa7e2734877330d6c10e0f33953905486c4530c",
"status": "affected",
"version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
"versionType": "git"
},
{
"lessThan": "de8ccbd6bf4efe7a059e2c483789936009e10f42",
"status": "affected",
"version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
"versionType": "git"
},
{
"lessThan": "db3dbdfea1b8f38774419c5c2c14e4b81c48708d",
"status": "affected",
"version": "8a6e02d0c00e7b62e6acb74146878bb91e9e7e31",
"versionType": "git"
},
{
"lessThan": "6.12.103",
"status": "affected",
"version": "6.12.13",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/of/of_reserved_mem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.12.103",
"versionStartIncluding": "6.12.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nof: reserved_mem: prevent OOB when too many dynamic regions are defined\n\nOn boot, fdt_scan_reserved_mem() saves each dynamically-placed\n/reserved-memory subnode into a local array of size\nMAX_RESERVED_REGIONS.\n\nIf the device tree defines more than MAX_RESERVED_REGIONS\ndynamically-placed regions, fdt_scan_reserved_mem() writes past the\nend of the local array.\n\nAdd a bounds check that logs an error and skips the excess regions,\nrestoring the original behavior."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The overflow only runs in __init boot-time fdt_scan_reserved_mem() while parsing /reserved-memory from the bootloader-provided DTB; there is no post-boot syscall, ioctl, netlink, or network-stack path to this code on OF/DT platforms (arm/arm64/RISC-V/ppc/mips/etc.).\nAC:L - An attacker who can supply a device tree simply defines more than MAX_RESERVED_REGIONS (64) dynamically-placed /reserved-memory subnodes (size without reg); each extra node deterministically performs another unchecked write past dynamic_nodes[] without races or layout luck.\nPR:N - Triggering requires only a crafted device tree delivered at boot (e.g., compromised firmware/OTA image, supply-chain DTB, unauthenticated PXE/TFTP netboot), not privileges on the victim OS; unprivileged local users and user-namespace capabilities cannot reach this __init-only path.\nUI:N - Once a malicious DTB is installed, the stack overflow occurs automatically during early_init_fdt_scan_reserved_mem() before userspace starts; no cooperative action by another user or administrator is required beyond normal boot.\nS:U - Impact is confined to early-boot kernel stack/memory corruption within the same host kernel; this is not a VM escape, guest-to-host breakout, IOMMU boundary bypass, or other cross-security-authority scenario.\nC:H - Each OOB store writes an attacker-influenced FDT node offset past dynamic_nodes[MAX_RESERVED_REGIONS] onto the kernel stack, corrupting adjacent locals and potentially frame/link registers; per kernel guidance, stack OOB writes enable high confidentiality impact.\nI:H - This is a stack buffer overflow (CWE-121/787) during __init: repeated int writes past the 64-element dynamic_nodes[] array can corrupt return addresses and control flow in early boot before full hardening, enabling arbitrary kernel code execution.\nA:H - Unchecked OOB writes into the boot-time stack typically cause immediate kernel panic/oops during fdt_scan_reserved_mem() (corrupted count/fdt pointers or trashed frame), denying availability on every boot with a crafted or over-limit DT."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:40.126Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/68d27250c9e81ab7764603e346c2b1017cb53adf"
},
{
"url": "https://git.kernel.org/stable/c/cfa7e2734877330d6c10e0f33953905486c4530c"
},
{
"url": "https://git.kernel.org/stable/c/de8ccbd6bf4efe7a059e2c483789936009e10f42"
},
{
"url": "https://git.kernel.org/stable/c/db3dbdfea1b8f38774419c5c2c14e4b81c48708d"
}
],
"title": "of: reserved_mem: prevent OOB when too many dynamic regions are defined",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80723",
"datePublished": "2026-08-28T06:53:18.485Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:40.126Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80722 (GCVE-0-2026-80722)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: validate individual TWT params before driver setup
ieee80211_process_rx_twt_action() only partially validates a received
S1G TWT setup frame before queueing it.
An individual agreement can therefore reach ieee80211_s1g_rx_twt_setup()
with twt->length too short for the full struct ieee80211_twt_params.
The individual path passes twt to drv_add_twt_setup(). Both the tracepoint
and the driver callback consume the complete parameters block, not merely
req_type. Do not pass a short individual agreement to the driver.
Broadcast agreements remain unchanged because they are rejected locally
after accessing only req_type.
[edit commit message to not overclaim lack of validation nor
understate driver impact]
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 Version: f5a4c24e689f54e66201f04d343bdd2e8a1d7923 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/mac80211/s1g.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "92fcd0f30dc8e51f252589b082d46851d295cc1a",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "09d60d1f72e6598241490eb6c4e97245af895c09",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "ff558072d199c1d641d1561da622e67f780514de",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "ade9e2f0f7f4d3089600ac2af8ef0b91746f923b",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "b558e07708d886acfcf4b0391ed7a8546e81d326",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "47fb04c3826e1f90271d405523043d6708b9072a",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
},
{
"lessThan": "0502d5077e419427d80f4d46ba95d0067f5fb916",
"status": "affected",
"version": "f5a4c24e689f54e66201f04d343bdd2e8a1d7923",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/mac80211/s1g.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.15"
},
{
"lessThan": "5.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.15.216",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: validate individual TWT params before driver setup\n\nieee80211_process_rx_twt_action() only partially validates a received\nS1G TWT setup frame before queueing it.\n\nAn individual agreement can therefore reach ieee80211_s1g_rx_twt_setup()\nwith twt-\u003elength too short for the full struct ieee80211_twt_params.\n\nThe individual path passes twt to drv_add_twt_setup(). Both the tracepoint\nand the driver callback consume the complete parameters block, not merely\nreq_type. Do not pass a short individual agreement to the driver.\nBroadcast agreements remain unchanged because they are rejected locally\nafter accessing only req_type.\n\n[edit commit message to not overclaim lack of validation nor\n understate driver impact]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - Malformed S1G TWT setup action frames reach mac80211 via normal WiFi RX (driver -\u003e ieee80211_rx_h_action -\u003e ieee80211_process_rx_twt_action -\u003e ieee80211_s1g_rx_twt_setup); an adjacent attacker within radio range sends crafted 802.11 management frames to a vulnerable AP.\nAC:L - The attacker fully controls the TWT element length and payload; ieee80211_process_rx_twt_action() only validates two bytes of req_type before queueing, so a short individual agreement reliably reaches drv_add_twt_setup() without races or victim-specific timing.\nPR:N - No Linux privileges on the victim AP are required; exploitation needs only normal 802.11 association as a WiFi client to an S1G AP with twt_responder enabled and a driver implementing add_twt_setup (e.g. MediaTek mt7915/mt7996).\nUI:N - No deliberate victim action is needed beyond operating an S1G AP that accepts associated stations; the attacker directly injects the malformed TWT setup frame and mac80211 processes it automatically on receive.\nS:U - Impact is kernel/driver heap memory corruption on the AP host within the same security authority; it does not cross VM, IOMMU, or sandbox boundaries (standard kernel compromise scope).\nC:H - drv_add_twt_setup(), its tracepoint, and driver callbacks read the full ieee80211_twt_params (twt, min_twt_dur, mantissa, channel) beyond the validated skb bounds, causing out-of-bounds reads of adjacent skb/heap memory that can disclose kernel data.\nI:H - MediaTek add_twt_setup() handlers write twt_agrt fields (req_type, min_twt_dur, twt) past the undersized params block into skb tail/heap memory, providing out-of-bounds write primitives exploitable for further memory corruption or code execution.\nA:H - Out-of-bounds access in mac80211/driver TWT setup can kernel-oops the AP or hang/crash WiFi firmware when corrupted parameters are programmed into hardware TWT state from attacker-controlled short frames."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:38.281Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/92fcd0f30dc8e51f252589b082d46851d295cc1a"
},
{
"url": "https://git.kernel.org/stable/c/09d60d1f72e6598241490eb6c4e97245af895c09"
},
{
"url": "https://git.kernel.org/stable/c/ff558072d199c1d641d1561da622e67f780514de"
},
{
"url": "https://git.kernel.org/stable/c/ade9e2f0f7f4d3089600ac2af8ef0b91746f923b"
},
{
"url": "https://git.kernel.org/stable/c/b558e07708d886acfcf4b0391ed7a8546e81d326"
},
{
"url": "https://git.kernel.org/stable/c/47fb04c3826e1f90271d405523043d6708b9072a"
},
{
"url": "https://git.kernel.org/stable/c/0502d5077e419427d80f4d46ba95d0067f5fb916"
}
],
"title": "wifi: mac80211: validate individual TWT params before driver setup",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80722",
"datePublished": "2026-08-28T06:53:17.886Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:38.281Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80721 (GCVE-0-2026-80721)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: ensure no dangling hcon references in iso_conn
After iso_conn_del(), ISO sockets should not dereference the hcon any
more. Currently, clearing iso_conn::hcon relies on iso_conn_del()
releasing the last reference to the iso_conn.
Simplify this by explicitly clearing conn->hcon in iso_conn_del(), to
avoid more complex reasoning on races about who holds the last
reference.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e941799c31f68e67ce0976efb38a79101f921b64",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cdce8af9291d8a1f8916c271de029bf558d9e8ec",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "aa9f7cb2bd3a2be998ceb739fc9a2f986eba43eb",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6.18.44",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "7.1.8",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bluetooth/iso.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.18.44",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: ensure no dangling hcon references in iso_conn\n\nAfter iso_conn_del(), ISO sockets should not dereference the hcon any\nmore. Currently, clearing iso_conn::hcon relies on iso_conn_del()\nreleasing the last reference to the iso_conn.\n\nSimplify this by explicitly clearing conn-\u003ehcon in iso_conn_del(), to\navoid more complex reasoning on races about who holds the last\nreference."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - The bug is in Bluetooth ISO connection teardown (iso_conn_del/iso_conn_free); reachable when an adjacent peer triggers HCI disconnect/connect-failure events or sends ISO traffic processed by iso_recv, without network or physical USB access.\nAC:L - An adjacent attacker controls both sides of the refcount race by timing remote disconnects and ISO packets against local teardown; no rare layout or victim-specific state beyond an active ISO session is required.\nPR:N - No local privileges are required on the victim; an unauthenticated adjacent Bluetooth peer can trigger iso_disconn_cfm/iso_connect_cfm teardown on phones and desktops with Bluetooth and LE Audio/ISO enabled.\nUI:N - Exploitation needs no victim interaction during the attack; once Bluetooth is on and an ISO link exists (e.g., LE Audio), remote disconnect and ISO traffic alone can hit the race.\nS:U - The flaw causes kernel heap use-after-free on hci_conn via dangling iso_conn::hcon references; impact stays within kernel memory safety, not a VM escape or cross-authority boundary.\nC:H - After hci_conn_del frees hcon, iso_conn still holds conn-\u003ehcon; subsequent iso_conn_free or socket paths dereference freed hci_conn memory, a classic UAF read primitive.\nI:H - Use-after-free on hci_conn enables corrupting connection management fields and hci_conn_drop state; such kernel heap UAF bugs are routinely leveraged for arbitrary write and code execution.\nA:H - Dereferencing freed hci_conn in iso_conn_free or ISO socket teardown reliably causes kernel oops or panic, giving unprivileged adjacent attackers a repeatable denial-of-service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:37.048Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e941799c31f68e67ce0976efb38a79101f921b64"
},
{
"url": "https://git.kernel.org/stable/c/cdce8af9291d8a1f8916c271de029bf558d9e8ec"
},
{
"url": "https://git.kernel.org/stable/c/aa9f7cb2bd3a2be998ceb739fc9a2f986eba43eb"
}
],
"title": "Bluetooth: ISO: ensure no dangling hcon references in iso_conn",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80721",
"datePublished": "2026-08-28T06:53:17.278Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:37.048Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80720 (GCVE-0-2026-80720)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
iomap: add a separate bio_set for iomap_split_ioend
iomap_split_ioend can split bios that already come from
iomap_ioend_bioset and thus deadlock when the bioset is exhausted.
Add a separate bio_set to avoid this deadlock.
Christian Brauner <brauner@kernel.org> says:
Mark iomap_ioend_split_bioset static as it is only used in ioend.c,
fixing the sparse warning reported by the kernel test robot.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/iomap/ioend.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cfc686a1174aa904dcad9b9a7c5e46b484d27e4e",
"status": "affected",
"version": "5fcbd555d48390a8c819ba7fdf55fbfcabe05c80",
"versionType": "git"
},
{
"lessThan": "4a869be56e9f6ce7462abcf324ebdefc5de051be",
"status": "affected",
"version": "5fcbd555d48390a8c819ba7fdf55fbfcabe05c80",
"versionType": "git"
},
{
"lessThan": "c679ce3be6cb63763d68ab9b5d9d73ddc0a40762",
"status": "affected",
"version": "5fcbd555d48390a8c819ba7fdf55fbfcabe05c80",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/iomap/ioend.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"lessThan": "6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.18.44",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niomap: add a separate bio_set for iomap_split_ioend\n\niomap_split_ioend can split bios that already come from\niomap_ioend_bioset and thus deadlock when the bioset is exhausted.\n\nAdd a separate bio_set to avoid this deadlock.\n\nChristian Brauner \u003cbrauner@kernel.org\u003e says:\nMark iomap_ioend_split_bioset static as it is only used in ioend.c,\nfixing the sparse warning reported by the kernel test robot."
}
],
"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 - On ZNS-backed XFS realtime volumes exported via nfsd/ksmbd, remote client write I/O reaches vfs_write()-\u003exfs_zone_alloc_and_submit()-\u003eiomap_split_ioend() in the server kernel without local shell access.\nAC:L - An attacker with write access can deterministically exhaust the 32-entry iomap_ioend_bioset via concurrent large zoned writes or direct I/O needing multiple bio_split allocations from the same pool; they control thread count and I/O size without uncontrollable races.\nPR:N - Triggering requires only permission to write realtime files on an XFS zoned filesystem via local syscall or network NFS/SMB client write; no CAP_SYS_ADMIN, ioctl, or init-namespace root is needed beyond write access to exported storage.\nUI:N - The attacker triggers the deadlock with their own concurrent write or direct-I/O requests; no separate victim must mount media, open a file, or perform any interactive action beyond the attacker\u0027s own I/O.\nS:U - The bioset mempool deadlock freezes zoned XFS I/O within the same host kernel security authority; it does not cross a VM, IOMMU, or sandbox boundary.\nC:N - This is a mempool self-deadlock with no memory corruption, out-of-bounds access, use-after-free, or information disclosure; bio_split failure returns -ENOMEM rather than leaking kernel data.\nI:N - The bug causes tasks to block indefinitely on mempool allocation but does not corrupt, modify, or overwrite file data or enable arbitrary writes or code execution.\nA:H - When iomap_ioend_bioset is exhausted, bio_split blocks on mempool_alloc() while holders cannot release entries, deadlocking writeback workers and zoned submit paths and hanging all I/O on the affected XFS zoned filesystem."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:35.780Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cfc686a1174aa904dcad9b9a7c5e46b484d27e4e"
},
{
"url": "https://git.kernel.org/stable/c/4a869be56e9f6ce7462abcf324ebdefc5de051be"
},
{
"url": "https://git.kernel.org/stable/c/c679ce3be6cb63763d68ab9b5d9d73ddc0a40762"
}
],
"title": "iomap: add a separate bio_set for iomap_split_ioend",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80720",
"datePublished": "2026-08-28T06:53:16.683Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:35.780Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80719 (GCVE-0-2026-80719)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm: mglru: fix stale batch updates after memcg reparenting
The mglru page table walker batches per-generation size deltas in
walk->nr_pages while walking page tables without holding the lruvec lock.
The reset_batch_size() later folds those deltas into walk->lruvec under
the lruvec lock.
The page table walker can run concurrently with the memcg reparenting path
as follows:
CPU0 CPU1
==== ====
walk_mm
--> walk_page_range
--> update_batch_size
--> walk->nr_pages += delta
mem_cgroup_css_offline
--> memcg_reparent_objcgs
--> lock lruvec
lru_gen_reparent_memcg
--> reparent child folios to parent
unlock lruvec
lock lruvec
reset_batch_size
--> child lrugen->nr_pages += delta
This will trigger the following warning in lru_gen_exit_memcg():
VM_WARN_ON_ONCE(memchr_inv(lruvec->lrugen.nr_pages, 0,
sizeof(lruvec->lrugen.nr_pages)));
And the user-visible impact of underestimated nr_pages in MGLRU was
premature OOMs because MGLRU does not try to reclaim memory when nr_pages
reaches zero, but there are still more pages.
To fix it, make reset_batch_size() check CSS_DYING under RCU before
flushing the pending batch. A non-dying memcg keeps the original lruvec
stable against RCU-delayed offlining; a dying memcg redirects the deltas
to the first non-dying ancestor.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/linux/memcontrol.h",
"mm/vmscan.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fceb6b7f3ddec6ea9fc11577f4cf1b2da73a3101",
"status": "affected",
"version": "f304652609eae3814b0e9d11c75c0e0cb62da31f",
"versionType": "git"
},
{
"lessThan": "de4660898b7aa7e03d3b120a6bfa6b26211e4e77",
"status": "affected",
"version": "f304652609eae3814b0e9d11c75c0e0cb62da31f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/linux/memcontrol.h",
"mm/vmscan.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.1"
},
{
"lessThan": "7.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "7.1.8",
"versionStartIncluding": "7.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "7.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm: mglru: fix stale batch updates after memcg reparenting\n\nThe mglru page table walker batches per-generation size deltas in\nwalk-\u003enr_pages while walking page tables without holding the lruvec lock. \nThe reset_batch_size() later folds those deltas into walk-\u003elruvec under\nthe lruvec lock.\n\nThe page table walker can run concurrently with the memcg reparenting path\nas follows:\n\nCPU0 CPU1\n==== ====\n\nwalk_mm\n--\u003e walk_page_range\n --\u003e update_batch_size\n --\u003e walk-\u003enr_pages += delta\n\n mem_cgroup_css_offline\n --\u003e memcg_reparent_objcgs\n --\u003e lock lruvec\n lru_gen_reparent_memcg\n --\u003e reparent child folios to parent\n unlock lruvec\n\n lock lruvec\n reset_batch_size\n --\u003e child lrugen-\u003enr_pages += delta\n\nThis will trigger the following warning in lru_gen_exit_memcg():\n\n\tVM_WARN_ON_ONCE(memchr_inv(lruvec-\u003elrugen.nr_pages, 0,\n\t\t\t\t sizeof(lruvec-\u003elrugen.nr_pages)));\n\nAnd the user-visible impact of underestimated nr_pages in MGLRU was\npremature OOMs because MGLRU does not try to reclaim memory when nr_pages\nreaches zero, but there are still more pages.\n\nTo fix it, make reset_batch_size() check CSS_DYING under RCU before\nflushing the pending batch. A non-dying memcg keeps the original lruvec\nstable against RCU-delayed offlining; a dying memcg redirects the deltas\nto the first non-dying ancestor."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:16.087Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fceb6b7f3ddec6ea9fc11577f4cf1b2da73a3101"
},
{
"url": "https://git.kernel.org/stable/c/de4660898b7aa7e03d3b120a6bfa6b26211e4e77"
}
],
"title": "mm: mglru: fix stale batch updates after memcg reparenting",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80719",
"datePublished": "2026-08-28T06:53:16.087Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-28T06:53:16.087Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80718 (GCVE-0-2026-80718)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()
In pcpu_create_chunk(), nr_pages is the total contiguous backing
allocation, i.e., nr_units * pcpu_unit_pages, but pcpu_chunk_populated()
uses it to set chunk->populated, whose size is pcpu_unit_pages, bitmap.
Since bit N in chunk->populated means page offset N inside every unit is
backed. When nr_units > 1, the function writes beyond chunk->populated.
Fix it by using chunk->nr_pages.
It also fixes the global pcpu_nr_empty_pop_pages accounting, since
pcpu_balance_free() only iterates up to chunk->nr_pages.
Commit a63d4ac4ab609 ("percpu: make percpu-km set chunk->populated bitmap
properly") introduced the bitmap overflow issue. Later, commit
b539b87fed37f ("percpu: implmeent pcpu_nr_empty_pop_pages and
chunk->nr_populated") added pcpu_nr_empty_pop_pages and caused the
accounting issue.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a63d4ac4ab6094c051a5a240260d16117a7a2f86 Version: a63d4ac4ab6094c051a5a240260d16117a7a2f86 Version: a63d4ac4ab6094c051a5a240260d16117a7a2f86 Version: a63d4ac4ab6094c051a5a240260d16117a7a2f86 Version: a63d4ac4ab6094c051a5a240260d16117a7a2f86 Version: a63d4ac4ab6094c051a5a240260d16117a7a2f86 Version: a63d4ac4ab6094c051a5a240260d16117a7a2f86 Version: a63d4ac4ab6094c051a5a240260d16117a7a2f86 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/percpu-km.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5f43d2c1bea280dcdfabaf156c25e7402fb8039f",
"status": "affected",
"version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
"versionType": "git"
},
{
"lessThan": "92c43ac3c2b09eb16162e8144e73c00b7c3e29d6",
"status": "affected",
"version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
"versionType": "git"
},
{
"lessThan": "6fc7da2a052f2825fff785e860e67183f5acaaba",
"status": "affected",
"version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
"versionType": "git"
},
{
"lessThan": "01504da375f5b19df195cb1cb1cf1dd184318f97",
"status": "affected",
"version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
"versionType": "git"
},
{
"lessThan": "a6940b84c8c035da465b7165fdfcfb005545724e",
"status": "affected",
"version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
"versionType": "git"
},
{
"lessThan": "32134cf9211b83bed9076d0739c5906fbea4c763",
"status": "affected",
"version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
"versionType": "git"
},
{
"lessThan": "5c7fc39bf19abb38a996aaad77b3e3a8f48581c3",
"status": "affected",
"version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
"versionType": "git"
},
{
"lessThan": "89b1b79c308818a715e75f28744b70d8940a07c9",
"status": "affected",
"version": "a63d4ac4ab6094c051a5a240260d16117a7a2f86",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/percpu-km.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.18"
},
{
"lessThan": "3.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.265",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()\n\nIn pcpu_create_chunk(), nr_pages is the total contiguous backing\nallocation, i.e., nr_units * pcpu_unit_pages, but pcpu_chunk_populated()\nuses it to set chunk-\u003epopulated, whose size is pcpu_unit_pages, bitmap. \nSince bit N in chunk-\u003epopulated means page offset N inside every unit is\nbacked. When nr_units \u003e 1, the function writes beyond chunk-\u003epopulated. \nFix it by using chunk-\u003enr_pages.\n\nIt also fixes the global pcpu_nr_empty_pop_pages accounting, since\npcpu_balance_free() only iterates up to chunk-\u003enr_pages.\n\nCommit a63d4ac4ab609 (\"percpu: make percpu-km set chunk-\u003epopulated bitmap\nproperly\") introduced the bitmap overflow issue. Later, commit\nb539b87fed37f (\"percpu: implmeent pcpu_nr_empty_pop_pages and\nchunk-\u003enr_populated\") added pcpu_nr_empty_pop_pages and caused the\naccounting issue."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - pcpu_create_chunk() is reached only when the kernel dynamic percpu allocator creates a new chunk via pcpu_alloc_noprof() or pcpu_balance_populated(); both require local syscalls driving __alloc_percpu() exhaustion, and percpu-km applies only on NOMMU/UP kernels with no remote packet path into this code.\nAC:L - On affected SMP NOMMU builds where nr_units\u003e1, an attacker can deterministically force pcpu_create_chunk() by spraying percpu-consuming allocations (e.g., repeated socket() or BPF percpu map creation) until existing chunks are full; no race or victim state outside attacker control is needed.\nPR:L - Dynamic percpu allocation is reachable with basic local user access; unprivileged attackers can obtain effective capability via user namespaces (unshare -Urn) plus CAP_NET_RAW-class socket paths or CAP_BPF where enabled, matching percpu-spray patterns in similar allocator CVEs.\nUI:N - The attacker drives percpu exhaustion and new-chunk creation entirely from its own processes via repeated local syscalls; no victim mount, file open, or administrator interaction is required.\nS:U - The bitmap overflow corrupts kernel kmalloc slab objects and percpu bookkeeping within the same kernel security domain; this is standard kernel heap corruption, not a VM, IOMMU, or sandbox boundary escape.\nC:H - bitmap_set() writes up to (nr_units*pcpu_unit_pages) bits into chunk-\u003epopulated[] sized for only pcpu_unit_pages, overflowing the kzalloc allocation in pcpu_alloc_chunk() and exposing or corrupting adjacent kernel heap memory.\nI:H - The same out-of-bounds write corrupts neighboring slab objects and inflates nr_populated/nr_empty_pop_pages accounting, providing attacker-influenced heap metadata corruption exploitable for arbitrary kernel writes and privilege escalation.\nA:H - Slab overflow during chunk initialization can immediately oops or panic the kernel and leaves corrupted allocator state that causes subsequent percpu operations to fault, consistent with rubric guidance for heap corruption bugs."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:34.556Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5f43d2c1bea280dcdfabaf156c25e7402fb8039f"
},
{
"url": "https://git.kernel.org/stable/c/92c43ac3c2b09eb16162e8144e73c00b7c3e29d6"
},
{
"url": "https://git.kernel.org/stable/c/6fc7da2a052f2825fff785e860e67183f5acaaba"
},
{
"url": "https://git.kernel.org/stable/c/01504da375f5b19df195cb1cb1cf1dd184318f97"
},
{
"url": "https://git.kernel.org/stable/c/a6940b84c8c035da465b7165fdfcfb005545724e"
},
{
"url": "https://git.kernel.org/stable/c/32134cf9211b83bed9076d0739c5906fbea4c763"
},
{
"url": "https://git.kernel.org/stable/c/5c7fc39bf19abb38a996aaad77b3e3a8f48581c3"
},
{
"url": "https://git.kernel.org/stable/c/89b1b79c308818a715e75f28744b70d8940a07c9"
}
],
"title": "mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80718",
"datePublished": "2026-08-28T06:53:15.490Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:34.556Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80717 (GCVE-0-2026-80717)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: validate Adaptation Indication parameter length
The Adaptation Layer Indication parameter contains a fixed 32-bit
Adaptation Code Point after its parameter header. However,
sctp_verify_param() accepts a header-only parameter because the generic
parameter walker only requires the header to be present.
sctp_process_param() then reads adaptation_ind beyond the declared
parameter. When the malformed parameter is last in an INIT, the read
starts at the receive skb tail, and the value is copied into the state
cookie returned in the INIT ACK. This may disclose four receive-buffer
tail bytes.
Require the declared parameter length to match the fixed structure size
and abort the association through the existing invalid parameter length
path otherwise.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/sm_make_chunk.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fa7861ddbe3b525b5d541c15c3953d3569e6eb0e",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "4c92c601c061e5602db2edeea54fef74aa304027",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "7b7e4e3640d57bd8857f0052c8b0d8ed4e5e954a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "93942b5772e0eee4147d4799cc1b936ae12fa615",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5fd7cfc708dfc988ae9920c21075e6121bc89926",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "17b412468c7a44f66a385bda48cdc1e94e39bd6d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "bfa28cf99eb4d096c87da939f54233444d209ca5",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "74b21f52c5c5a71a05c0ff70e513f4f04ff28b17",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/sm_make_chunk.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.265",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: validate Adaptation Indication parameter length\n\nThe Adaptation Layer Indication parameter contains a fixed 32-bit\nAdaptation Code Point after its parameter header. However,\nsctp_verify_param() accepts a header-only parameter because the generic\nparameter walker only requires the header to be present.\n\nsctp_process_param() then reads adaptation_ind beyond the declared\nparameter. When the malformed parameter is last in an INIT, the read\nstarts at the receive skb tail, and the value is copied into the state\ncookie returned in the INIT ACK. This may disclose four receive-buffer\ntail bytes.\n\nRequire the declared parameter length to match the fixed structure size\nand abort the association through the existing invalid parameter length\npath otherwise."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is reached when a remote peer sends a crafted SCTP INIT to a listening endpoint; packets enter sctp_rcv() and sctp_sf_do_5_1B_init(), which calls sctp_verify_init() and sctp_process_init() before any association authentication.\nAC:L - Exploitation is deterministic SCTP packet crafting: place SCTP_PARAM_ADAPTATION_LAYER_IND last in INIT with a 4-byte header-only length so sctp_process_param() reads past the TLV into skb tail memory; no race, memory-layout lottery, or rare victim state is required beyond SCTP being enabled.\nPR:N - INIT processing is pre-authentication SCTP handshake handling on a listening server; the attacker needs only network reachability to the SCTP port and no local account, Linux capabilities, or init-namespace privileges on the target host.\nUI:N - No victim user action such as opening files or clicking links is required; exploitation needs only that an SCTP listener is reachable and automatically processes inbound INIT chunks during normal server operation.\nS:U - Impact is a bounded kernel skb out-of-bounds read whose contents are returned to the remote peer in the INIT-ACK state cookie; it does not cross VM, container, or IOMMU security boundaries.\nC:H - sctp_process_param() performs an out-of-bounds read of four kernel receive-buffer tail bytes when adaptation_ind is accessed beyond a header-only parameter; those bytes are copied into the state cookie and disclosed to the attacker in INIT-ACK.\nI:N - The defect is an out-of-bounds read only; no kernel memory is written, no association structures are corrupted, and the fix does not address any write primitive or control-flow hijacking.\nA:N - The out-of-bounds read copies four skb tail bytes into the association cookie and INIT-ACK without dereferencing unmapped memory; the commit describes information disclosure only and no kernel oops, panic, or hang."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:33.315Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fa7861ddbe3b525b5d541c15c3953d3569e6eb0e"
},
{
"url": "https://git.kernel.org/stable/c/4c92c601c061e5602db2edeea54fef74aa304027"
},
{
"url": "https://git.kernel.org/stable/c/7b7e4e3640d57bd8857f0052c8b0d8ed4e5e954a"
},
{
"url": "https://git.kernel.org/stable/c/93942b5772e0eee4147d4799cc1b936ae12fa615"
},
{
"url": "https://git.kernel.org/stable/c/5fd7cfc708dfc988ae9920c21075e6121bc89926"
},
{
"url": "https://git.kernel.org/stable/c/17b412468c7a44f66a385bda48cdc1e94e39bd6d"
},
{
"url": "https://git.kernel.org/stable/c/bfa28cf99eb4d096c87da939f54233444d209ca5"
},
{
"url": "https://git.kernel.org/stable/c/74b21f52c5c5a71a05c0ff70e513f4f04ff28b17"
}
],
"title": "sctp: validate Adaptation Indication parameter length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80717",
"datePublished": "2026-08-28T06:53:14.886Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:33.315Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80716 (GCVE-0-2026-80716)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: pcm: wake linked drain waiters on unlink
snd_pcm_drain() on a linked stream parks an on-stack wait entry on the
drained peer's runtime->sleep, and after schedule_timeout() removes it
only if that peer is still found in the caller's group. If group
membership changes during the wait and the sleep ends by signal or
timeout (so autoremove_wake_function() does not run), finish_wait() is
skipped and snd_pcm_drain() returns with the entry still queued on that
stream's sleep list; a later wake_up() then walks a freed stack frame.
This is reachable by unlinking either the drained or the draining stream.
Unlike the close path (snd_pcm_drop() -> snd_pcm_post_stop()),
snd_pcm_unlink() never wakes the sleep queues. Wake every group member
under the group lock before the membership change, so a linked drainer is
released and drops its entry while the streams are still grouped.
The window was opened when snd_pcm_link_rwsem stopped being held across
the wait and the removal became conditional on group membership (see
Fixes). The later switch to finish_wait() kept that conditional removal,
so the signal/timeout case remained.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 Version: f57f3df03a8e6010e321fa0258d3e054713c3cb7 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/core/pcm_native.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c172e4c53321ee6429955295ea133bc3597a3ca9",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "3035bb784cea3f338934f5042dd3f35225a51b2e",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "1c1b7e8e545ce65e40f65b55c432765e058ea98f",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "e8b784a3f4fba3ea9c4d05138ecfa784a069627f",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "e8315330e4ec09c0cac625515400e13d0ee22b81",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "2940cc3cf43c72126b74ee6376314c195382023a",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "db09bc4ab19ce548a078240d2374792523953500",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
},
{
"lessThan": "f495b6c4c8594122918552c9be2b51eb71647cd9",
"status": "affected",
"version": "f57f3df03a8e6010e321fa0258d3e054713c3cb7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/core/pcm_native.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.265",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: pcm: wake linked drain waiters on unlink\n\nsnd_pcm_drain() on a linked stream parks an on-stack wait entry on the\ndrained peer\u0027s runtime-\u003esleep, and after schedule_timeout() removes it\nonly if that peer is still found in the caller\u0027s group. If group\nmembership changes during the wait and the sleep ends by signal or\ntimeout (so autoremove_wake_function() does not run), finish_wait() is\nskipped and snd_pcm_drain() returns with the entry still queued on that\nstream\u0027s sleep list; a later wake_up() then walks a freed stack frame.\nThis is reachable by unlinking either the drained or the draining stream.\n\nUnlike the close path (snd_pcm_drop() -\u003e snd_pcm_post_stop()),\nsnd_pcm_unlink() never wakes the sleep queues. Wake every group member\nunder the group lock before the membership change, so a linked drainer is\nreleased and drops its entry while the streams are still grouped.\n\nThe window was opened when snd_pcm_link_rwsem stopped being held across\nthe wait and the removal became conditional on group membership (see\nFixes). The later switch to finish_wait() kept that conditional removal,\nso the signal/timeout case remained."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is triggered only via local ALSA PCM character devices (/dev/snd/pcmC*D*) through open/ioctl syscalls (SNDRV_PCM_IOCTL_LINK, UNLINK, DRAIN); snd_pcm_kernel_ioctl does not expose LINK/UNLINK, and there is no network-facing path to this code.\nAC:L - This is a race, but the attacker controls both sides by opening two PCM fds, linking them, blocking one thread in DRAIN, and concurrently UNLINKing or closing the peer; sending a signal or waiting for timeout forces the path where finish_wait() is skipped.\nPR:L - Exploitation requires only a local process able to open and ioctl ALSA PCM nodes (typical desktop/mobile users via the audio group, session ACLs, or equivalent device permissions); no real root, CAP_SYS_ADMIN, or init-namespace privileges are needed.\nUI:N - The attacker drives the entire sequence programmatically with their own PCM file descriptors and threads; no victim interaction such as opening a file, mounting a filesystem, or plugging in hardware is required.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same security authority; this is not a VM escape, IOMMU/DMA boundary bypass, or other cross-scope violation.\nC:H - The orphaned wait_queue_entry_t remains on the sleep list after snd_pcm_drain() returns, and a later wake_up() dereferences a freed on-stack wait entry (use-after-free), which can expose kernel stack/memory contents under attacker-controlled timing.\nI:H - Corrupting the wait-queue list with a stale stack-backed entry gives kernel memory corruption primitives; wake_up() invokes the entry\u0027s function pointer from freed stack memory, enabling plausible control-flow hijack and arbitrary write via further heap/stack grooming.\nA:H - A subsequent wake_up() on the poisoned sleep queue walks a freed stack frame and can oops or panic the kernel; even without full exploitation, the UAF reliably threatens system availability on multimedia desktops, kiosks, and embedded devices with ALSA access."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:32.041Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c172e4c53321ee6429955295ea133bc3597a3ca9"
},
{
"url": "https://git.kernel.org/stable/c/3035bb784cea3f338934f5042dd3f35225a51b2e"
},
{
"url": "https://git.kernel.org/stable/c/1c1b7e8e545ce65e40f65b55c432765e058ea98f"
},
{
"url": "https://git.kernel.org/stable/c/e8b784a3f4fba3ea9c4d05138ecfa784a069627f"
},
{
"url": "https://git.kernel.org/stable/c/e8315330e4ec09c0cac625515400e13d0ee22b81"
},
{
"url": "https://git.kernel.org/stable/c/2940cc3cf43c72126b74ee6376314c195382023a"
},
{
"url": "https://git.kernel.org/stable/c/db09bc4ab19ce548a078240d2374792523953500"
},
{
"url": "https://git.kernel.org/stable/c/f495b6c4c8594122918552c9be2b51eb71647cd9"
}
],
"title": "ALSA: pcm: wake linked drain waiters on unlink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80716",
"datePublished": "2026-08-28T06:53:14.286Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:32.041Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80715 (GCVE-0-2026-80715)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
igc: remove napi_synchronize() in igc_down()
When an AF_XDP zero-copy application is killed abruptly, the XSK pool is
torn down but NAPI keeps polling. igc_clean_rx_irq_zc() then returns the
full budget on every poll, so napi_complete_done() never clears
NAPI_STATE_SCHED.
igc_down() calls napi_synchronize() before napi_disable(), so it spins
forever waiting for that bit and the interface never goes down. Drop the
napi_synchronize() and let napi_disable() do the job -- it sets
NAPI_STATE_DISABLE, which forces the stuck poll to complete. Reorder it
ahead of igc_set_queue_napi() so the NAPI mapping is cleared only after
polling has stopped, matching the recent igb fix b1e067240379.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 Version: fc9df2a0b520d7d439ecf464794d53e91be74b93 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/igc/igc_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ad6e0df267dc96edb7de1fa0a2fb2a70645bff86",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "605585a8d89aaeb0122e9016fdaa92376897a705",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "a0f16c337691813f8d8f014c01fff5a368e08898",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "f929a6fe5b7ae1e72d2c6d18cd69ab90dcf689d2",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "3b5aee6fcbf6b58112d40d19c8d31fa3f78ee668",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "9a2b637aef4e515c2179774888441d00e8a5ae95",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
},
{
"lessThan": "5ffab5b9589c50e4cfc0cf36ffd76c89422d4019",
"status": "affected",
"version": "fc9df2a0b520d7d439ecf464794d53e91be74b93",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/intel/igc/igc_main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"lessThan": "5.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.15.217",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nigc: remove napi_synchronize() in igc_down()\n\nWhen an AF_XDP zero-copy application is killed abruptly, the XSK pool is\ntorn down but NAPI keeps polling. igc_clean_rx_irq_zc() then returns the\nfull budget on every poll, so napi_complete_done() never clears\nNAPI_STATE_SCHED.\n\nigc_down() calls napi_synchronize() before napi_disable(), so it spins\nforever waiting for that bit and the interface never goes down. Drop the\nnapi_synchronize() and let napi_disable() do the job -- it sets\nNAPI_STATE_DISABLE, which forces the stuck poll to complete. Reorder it\nahead of igc_set_queue_napi() so the NAPI mapping is cleared only after\npolling has stopped, matching the recent igb fix b1e067240379."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:13.683Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ad6e0df267dc96edb7de1fa0a2fb2a70645bff86"
},
{
"url": "https://git.kernel.org/stable/c/605585a8d89aaeb0122e9016fdaa92376897a705"
},
{
"url": "https://git.kernel.org/stable/c/a0f16c337691813f8d8f014c01fff5a368e08898"
},
{
"url": "https://git.kernel.org/stable/c/f929a6fe5b7ae1e72d2c6d18cd69ab90dcf689d2"
},
{
"url": "https://git.kernel.org/stable/c/3b5aee6fcbf6b58112d40d19c8d31fa3f78ee668"
},
{
"url": "https://git.kernel.org/stable/c/9a2b637aef4e515c2179774888441d00e8a5ae95"
},
{
"url": "https://git.kernel.org/stable/c/5ffab5b9589c50e4cfc0cf36ffd76c89422d4019"
}
],
"title": "igc: remove napi_synchronize() in igc_down()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80715",
"datePublished": "2026-08-28T06:53:13.683Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-28T06:53:13.683Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80714 (GCVE-0-2026-80714)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipvs: do not propagate one-packet flag to synced conns
Synced connections can be created before their destination exists. When
the destination is later added, ip_vs_bind_dest() copies connection flags
from the destination into cp->flags.
IP_VS_CONN_F_ONE_PACKET connections are not synced. If a synced
connection inherits IP_VS_CONN_F_ONE_PACKET while it is already hashed,
expiry can treat it as a one-packet connection and skip unlinking the
existing conn_tab node, leaving stale hash nodes pointing at a freed
struct ip_vs_conn.
Drop IP_VS_CONN_F_ONE_PACKET from destination flags when binding synced
connections.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca Version: 26ec037f9841e49cc5c615deb8e1e73e5beab2ca |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipvs/ip_vs_conn.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "06d1d9b56ef8132fbf85006885eb43d9510b8b02",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "acbdc276091b308ca7794acb86e761f8203e2f59",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "300348e3ba1521b003d59825f97e24f9a6859688",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "44af98cc7d5ef8e730488d5df1eecd5deeaa5947",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "4649e6faeecdc2d44bfa6ccbe405eef27e55d816",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "b5ee5b266f833601ac4817f6df0bc496fc376a28",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "e7acfc990c29890c883d0d0ce3f737d003a43b44",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
},
{
"lessThan": "a63d2dbaeb50a85d4c976b15a36e6b0c7113db5b",
"status": "affected",
"version": "26ec037f9841e49cc5c615deb8e1e73e5beab2ca",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/ipvs/ip_vs_conn.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.36"
},
{
"lessThan": "2.6.36",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.265",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.36",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipvs: do not propagate one-packet flag to synced conns\n\nSynced connections can be created before their destination exists. When\nthe destination is later added, ip_vs_bind_dest() copies connection flags\nfrom the destination into cp-\u003eflags.\n\nIP_VS_CONN_F_ONE_PACKET connections are not synced. If a synced\nconnection inherits IP_VS_CONN_F_ONE_PACKET while it is already hashed,\nexpiry can treat it as a one-packet connection and skip unlinking the\nexisting conn_tab node, leaving stale hash nodes pointing at a freed\nstruct ip_vs_conn.\n\nDrop IP_VS_CONN_F_ONE_PACKET from destination flags when binding synced\nconnections."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached on IPVS backup nodes processing UDP sync datagrams in ip_vs_process_message()/ip_vs_proc_conn() (default multicast 224.0.0.81:8848), and on internet-facing load balancers client UDP traffic drives master sync that creates the hashed backup connection before destination bind.\nAC:L - An attacker can reliably inject or refresh IPVS sync records for UDP connections whose destination is not yet present, then trigger ip_vs_try_bind_dest() once a ONEPACKET destination exists; only optional syncid filtering (often 0) is outside attacker control, and connection expiry is timer-driven without a race.\nPR:N - The backup sync receiver accepts unauthenticated UDP multicast with no capability checks in ip_vs_receive()/ip_vs_process_message(); configuring IPVS/ONEPACKET is an environmental precondition on HA load balancers, not a privilege the remote attacker must hold on the victim host.\nUI:N - Exploitation requires no victim or administrator action at trigger time beyond normal HA IPVS operation; forged or reflected sync traffic and subsequent connection expiry directly invoke the vulnerable bind/unlink path without user interaction.\nS:U - Impact is confined to the kernel IPVS connection table on the affected load-balancer node (stale hash entries to a freed struct ip_vs_conn); it does not cross a VM, container, or IOMMU security boundary.\nC:H - Incorrect ONE_PACKET handling leaves hashed conn_tab nodes pointing at a freed struct ip_vs_conn; subsequent lookups in __ip_vs_conn_in_get() dereference freed slab memory, giving a use-after-free read primitive and potential kernel pointer/data disclosure.\nI:H - The same use-after-free lets attackers influence reuse of the freed ip_vs_conn object and corrupt connection state during later hash-table operations, enabling memory corruption exploitable for arbitrary kernel writes or control-flow hijacking.\nA:H - Dereferencing stale conn_tab entries for a freed connection causes kernel oops/panic; the condition is repeatable by sending additional sync traffic to recreate and expire affected UDP synced connections on the backup node."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:30.808Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/06d1d9b56ef8132fbf85006885eb43d9510b8b02"
},
{
"url": "https://git.kernel.org/stable/c/acbdc276091b308ca7794acb86e761f8203e2f59"
},
{
"url": "https://git.kernel.org/stable/c/300348e3ba1521b003d59825f97e24f9a6859688"
},
{
"url": "https://git.kernel.org/stable/c/44af98cc7d5ef8e730488d5df1eecd5deeaa5947"
},
{
"url": "https://git.kernel.org/stable/c/4649e6faeecdc2d44bfa6ccbe405eef27e55d816"
},
{
"url": "https://git.kernel.org/stable/c/b5ee5b266f833601ac4817f6df0bc496fc376a28"
},
{
"url": "https://git.kernel.org/stable/c/e7acfc990c29890c883d0d0ce3f737d003a43b44"
},
{
"url": "https://git.kernel.org/stable/c/a63d2dbaeb50a85d4c976b15a36e6b0c7113db5b"
}
],
"title": "ipvs: do not propagate one-packet flag to synced conns",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80714",
"datePublished": "2026-08-28T06:53:13.069Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:30.808Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80713 (GCVE-0-2026-80713)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
io_uring: preserve task restrictions across exec
Per-task restrictions apply to all rings created by a task. Once
installed, they should not be dropped across exec.
For a task that has used io_uring, the exec cancellation path calls
__io_uring_free(). This frees both the task context and the per-task
restriction, so a ring created after exec is unrestricted.
Split task context cleanup into io_uring_free_tctx(), and use it from
the exec cancellation path. Keep __io_uring_free() for final task
cleanup, where both the context and restriction are released.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"io_uring/cancel.c",
"io_uring/tctx.c",
"io_uring/tctx.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fcef9325afeecced693a7438e975e4a3f8e2716f",
"status": "affected",
"version": "ed82f35b926b2e505c14b7006473614b8f58b4f4",
"versionType": "git"
},
{
"lessThan": "bc0e8faf90e776a2f1f3967a04e8091e6bdb4977",
"status": "affected",
"version": "ed82f35b926b2e505c14b7006473614b8f58b4f4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"io_uring/cancel.c",
"io_uring/tctx.c",
"io_uring/tctx.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.0"
},
{
"lessThan": "7.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "7.1.8",
"versionStartIncluding": "7.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "7.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nio_uring: preserve task restrictions across exec\n\nPer-task restrictions apply to all rings created by a task. Once\ninstalled, they should not be dropped across exec.\n\nFor a task that has used io_uring, the exec cancellation path calls\n__io_uring_free(). This frees both the task context and the per-task\nrestriction, so a ring created after exec is unrestricted.\n\nSplit task context cleanup into io_uring_free_tctx(), and use it from\nthe exec cancellation path. Keep __io_uring_free() for final task\ncleanup, where both the context and restriction are released."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached only via local io_uring syscalls (io_uring_setup/io_uring_register) and execve(); fs/exec.c calls io_uring_task_cancel() which invokes the buggy __io_uring_free() path, and per kernel guidance io_uring is Local not Network.\nAC:L - The attacker fully controls the trigger by calling io_uring_setup() to create a task context then execve(); exec deterministically runs io_uring_cancel_generic(true) and frees per-task restrictions without races, special memory layout, or other uncontrollable conditions.\nPR:L - Exploitation requires only an unprivileged local process that had per-task io_uring restrictions installed by a parent/sandbox; the attacker needs no init-namespace CAP_SYS_ADMIN and can use io_uring unless blocked by sysctl or LSM policy.\nUI:N - No victim interaction is required; the confined attacker process itself performs io_uring_setup and execve to drop restrictions, then io_uring_setup again to obtain an unrestricted ring without administrator or other-user action.\nS:C - Per-task io_uring restrictions are a confinement policy enforced by a separate sandbox/parent authority; clearing them across exec lets post-exec code exceed that policy and access kernel interfaces explicitly withheld, crossing the intended sandbox security boundary.\nC:H - Dropping restrictions re-enables blocked io_uring SQEs, register operations, and BPF filters, including IORING_OP_URING_CMD and read-oriented ops against kernel/driver interfaces denied by policy, enabling disclosure beyond the confinement authority\u0027s intent.\nI:H - Bypass restores the full unrestricted io_uring opcode and register surface (writes, open/link ops, IORING_OP_URING_CMD, buffer/file registration), allowing post-exec integrity-affecting kernel and driver interactions explicitly denied by per-task restrictions.\nA:N - The vulnerability only incorrectly frees restriction metadata during exec cleanup; it does not directly cause kernel panics, oopses, deadlocks, or hangs, so there is no availability impact from the bug itself."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:29.500Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fcef9325afeecced693a7438e975e4a3f8e2716f"
},
{
"url": "https://git.kernel.org/stable/c/bc0e8faf90e776a2f1f3967a04e8091e6bdb4977"
}
],
"title": "io_uring: preserve task restrictions across exec",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80713",
"datePublished": "2026-08-28T06:53:12.438Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:29.500Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80712 (GCVE-0-2026-80712)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
spi: spi-qpic-snand: write the feature value before executing SET_FEATURE
qcom_spi_send_cmdaddr() programs NAND_FLASH_CMD/NAND_EXEC_CMD and submits
the descriptors, which makes the controller execute the command
immediately. For SPINAND_SET_FEATURE the value to be written is only
placed into NAND_FLASH_FEATURES afterwards, by qcom_spi_io_op(), in a
second submission - so the chip is programmed with whatever that register
happened to hold from a previous operation, and the intended value is only
applied by the *next* SET_FEATURE.
Measured on a TP-Link Archer AX55 v1 (IPQ5018, ESMT F50L1G41LB): writing
0x40 to the configuration register (0xb0) leaves the chip at 0x00, and the
subsequent write of 0x00 leaves it at 0x40 - every write lands one
operation late.
This stayed unnoticed until v6.18 added SPI-NAND OTP support together
with OTP entries for ESMT chips. spinand_otp_rw() enables OTP mode,
reads, and disables it again, and mtd_otp_nvmem_add() does this during
MTD registration. With the off-by-one, the "disable" write actually
applies the previously requested value, so CFG_OTP_ENABLE ends up set:
the chip stays in OTP mode, every subsequent array read returns the OTP
area instead of the array (UBI reports an empty device) and all writes
fail with -EIO because the OTP area is write protected. On this board
that makes the whole flash unusable and the device unbootable.
Write the feature value into NAND_FLASH_FEATURES as part of the same
transaction, before NAND_EXEC_CMD. While at it, copy only the bytes the
operation actually carries - the previous code dereferenced a 4-byte
pointer on a one-byte buffer (spinand->scratchbuf).
With this patch the flash contents read back bit-identical to a
known-good dump of the same board taken under the vendor firmware
(md5-verified across partitions), and writes work.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/spi/spi-qpic-snand.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "581e5166f0780103dc91c0d8ebc801f9af4824b0",
"status": "affected",
"version": "7304d1909080ef0c9da703500a97f46c98393fcd",
"versionType": "git"
},
{
"lessThan": "3ba021079ef2ac6e21e3547328496ac42d22b56a",
"status": "affected",
"version": "7304d1909080ef0c9da703500a97f46c98393fcd",
"versionType": "git"
},
{
"lessThan": "8fd62901d6bf03f274a49dd0060793cc07dd51b0",
"status": "affected",
"version": "7304d1909080ef0c9da703500a97f46c98393fcd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/spi/spi-qpic-snand.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"lessThan": "6.15",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.18.44",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nspi: spi-qpic-snand: write the feature value before executing SET_FEATURE\n\nqcom_spi_send_cmdaddr() programs NAND_FLASH_CMD/NAND_EXEC_CMD and submits\nthe descriptors, which makes the controller execute the command\nimmediately. For SPINAND_SET_FEATURE the value to be written is only\nplaced into NAND_FLASH_FEATURES afterwards, by qcom_spi_io_op(), in a\nsecond submission - so the chip is programmed with whatever that register\nhappened to hold from a previous operation, and the intended value is only\napplied by the *next* SET_FEATURE.\n\nMeasured on a TP-Link Archer AX55 v1 (IPQ5018, ESMT F50L1G41LB): writing\n0x40 to the configuration register (0xb0) leaves the chip at 0x00, and the\nsubsequent write of 0x00 leaves it at 0x40 - every write lands one\noperation late.\n\nThis stayed unnoticed until v6.18 added SPI-NAND OTP support together\nwith OTP entries for ESMT chips. spinand_otp_rw() enables OTP mode,\nreads, and disables it again, and mtd_otp_nvmem_add() does this during\nMTD registration. With the off-by-one, the \"disable\" write actually\napplies the previously requested value, so CFG_OTP_ENABLE ends up set:\nthe chip stays in OTP mode, every subsequent array read returns the OTP\narea instead of the array (UBI reports an empty device) and all writes\nfail with -EIO because the OTP area is write protected. On this board\nthat makes the whole flash unusable and the device unbootable.\n\nWrite the feature value into NAND_FLASH_FEATURES as part of the same\ntransaction, before NAND_EXEC_CMD. While at it, copy only the bytes the\noperation actually carries - the previous code dereferenced a 4-byte\npointer on a one-byte buffer (spinand-\u003escratchbuf).\n\nWith this patch the flash contents read back bit-identical to a\nknown-good dump of the same board taken under the vendor firmware\n(md5-verified across partitions), and writes work."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.4,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is in the onboard Qualcomm QPIC SPI-NAND driver reached via spi_mem/MTD during driver probe and flash operations; it is not reachable through network protocols, only local kernel flash/MTD paths on embedded SoCs (IPQ5018/IPQ9574 routers, APs, gateways).\nAC:L - Every SPINAND_SET_FEATURE is deterministically one operation late because NAND_EXEC_CMD fires before NAND_FLASH_FEATURES is programmed; the OTP disable-after-read sequence reliably leaves CFG_OTP_ENABLE set without races or attacker-uncontrollable timing.\nPR:N - No attacker privileges are required once an affected kernel runs: mtd_device_parse_register() calls mtd_otp_nvmem_add() during boot, which triggers spinand_otp_rw() and bricks flash on ESMT chips with OTP support without any userspace or admin action.\nUI:N - Exploitation requires no victim interaction; the vulnerable OTP read path runs automatically during MTD registration at driver probe/boot on affected Qualcomm platforms with ESMT SPI-NAND OTP tables added in v6.18.\nS:U - Impact is confined to the same kernel/flash security boundary on the embedded device; there is no cross-VM, cross-container, or IOMMU boundary bypass\u2014only persistent corruption of onboard SPI-NAND chip configuration and flash availability.\nC:H - When OTP mode sticks enabled, all subsequent array reads return OTP contents instead of normal flash data, disclosing factory OTP region data; the pre-fix 4-byte dereference on a 1-byte SET_FEATURE buffer also programs stale register bytes into the chip.\nI:H - Misprogrammed feature registers persistently corrupt SPI-NAND configuration; the demonstrated OTP-mode lock leaves the OTP area write-protected, all flash writes fail with -EIO, UBI sees an empty device, and the router becomes permanently unbootable until hardware reflash.\nA:H - Affected devices suffer complete loss of boot flash availability\u2014the commit documents whole-flash unusability and unbootable TP-Link Archer AX55 boards, constituting total persistent denial of service on consumer WiFi routers and Qualcomm embedded gateways."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:28.248Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/581e5166f0780103dc91c0d8ebc801f9af4824b0"
},
{
"url": "https://git.kernel.org/stable/c/3ba021079ef2ac6e21e3547328496ac42d22b56a"
},
{
"url": "https://git.kernel.org/stable/c/8fd62901d6bf03f274a49dd0060793cc07dd51b0"
}
],
"title": "spi: spi-qpic-snand: write the feature value before executing SET_FEATURE",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80712",
"datePublished": "2026-08-28T06:53:11.243Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-29T06:22:28.248Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80711 (GCVE-0-2026-80711)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
power: supply: max17040: handle missing status supplier
MAX17040 does not report charger state itself, so the driver forwards
POWER_SUPPLY_PROP_STATUS to a supplier power supply. If no supplier is
registered, power_supply_get_property_from_supplier() returns -ENODEV and
leaves the output value untouched.
max17040_get_property() currently ignores that error and returns success,
so userspace can read an uninitialized status value from the battery power
supply. This happens on systems that use the fuel gauge without a charger
supplier relationship in firmware.
Return POWER_SUPPLY_STATUS_UNKNOWN when no supplier provides STATUS, and
propagate other supplier lookup errors.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/power/supply/max17040_battery.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "91ac995a6f4ddf4f92b231b080544abf23a9b871",
"status": "affected",
"version": "f4b782af61ae7bbf93008d5809b0e3a8ac2bb88e",
"versionType": "git"
},
{
"lessThan": "b039f13e095d28a64ca6b21d0ee5440d8b048f37",
"status": "affected",
"version": "f4b782af61ae7bbf93008d5809b0e3a8ac2bb88e",
"versionType": "git"
},
{
"lessThan": "ee2ea0c452edc0930e7395b080dccd5a1cb965e1",
"status": "affected",
"version": "f4b782af61ae7bbf93008d5809b0e3a8ac2bb88e",
"versionType": "git"
},
{
"lessThan": "725668c6b6aa3971fe850659102c250d0d676e18",
"status": "affected",
"version": "f4b782af61ae7bbf93008d5809b0e3a8ac2bb88e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/power/supply/max17040_battery.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.12.103",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\npower: supply: max17040: handle missing status supplier\n\nMAX17040 does not report charger state itself, so the driver forwards\nPOWER_SUPPLY_PROP_STATUS to a supplier power supply. If no supplier is\nregistered, power_supply_get_property_from_supplier() returns -ENODEV and\nleaves the output value untouched.\n\nmax17040_get_property() currently ignores that error and returns success,\nso userspace can read an uninitialized status value from the battery power\nsupply. This happens on systems that use the fuel gauge without a charger\nsupplier relationship in firmware.\n\nReturn POWER_SUPPLY_STATUS_UNKNOWN when no supplier provides STATUS, and\npropagate other supplier lookup errors."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:10.631Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/91ac995a6f4ddf4f92b231b080544abf23a9b871"
},
{
"url": "https://git.kernel.org/stable/c/b039f13e095d28a64ca6b21d0ee5440d8b048f37"
},
{
"url": "https://git.kernel.org/stable/c/ee2ea0c452edc0930e7395b080dccd5a1cb965e1"
},
{
"url": "https://git.kernel.org/stable/c/725668c6b6aa3971fe850659102c250d0d676e18"
}
],
"title": "power: supply: max17040: handle missing status supplier",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80711",
"datePublished": "2026-08-28T06:53:10.631Z",
"dateReserved": "2026-08-26T14:34:25.788Z",
"dateUpdated": "2026-08-28T06:53:10.631Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80710 (GCVE-0-2026-80710)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/dasd: Fix undersized format-check buffer
fmt_buffer_size in dasd_eckd_check_device_format() is declared as
int, even though one of the multiplicands, sizeof(struct eckd_count),
is a size_t. The expression
trkcount * rpt_max * sizeof(struct eckd_count)
is therefore correctly evaluated at 64-bit width, but the result is
silently truncated when it is stored back into the 32-bit
fmt_buffer_size variable. For a sufficiently large track range
(start_unit/stop_unit are caller-controlled) this truncation
yields a buffer size far smaller than the number of tracks actually
requested. kzalloc() then succeeds with an undersized allocation,
while the subsequent channel program build still operates on the
untruncated track count and writes past the end of that buffer.
Compute the buffer size with check_mul_overflow() and keep it in a
size_t, so that a value that no longer fits results in -EINVAL
instead of a silently truncated allocation size.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/s390/block/dasd_eckd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "aca18289c86f22d3fc2f3f6ff615286e7b1702f6",
"status": "affected",
"version": "8fd575200db5b53f6ea6818dd017f1b43190db12",
"versionType": "git"
},
{
"lessThan": "9f88dda2f22927d22498801a92cab6a9424eaf86",
"status": "affected",
"version": "8fd575200db5b53f6ea6818dd017f1b43190db12",
"versionType": "git"
},
{
"lessThan": "e16e0fc54120cee3c6f0362de95aab6792865857",
"status": "affected",
"version": "8fd575200db5b53f6ea6818dd017f1b43190db12",
"versionType": "git"
},
{
"lessThan": "87f3389cd3920714c53e704778f7ca7f1cf0c39c",
"status": "affected",
"version": "8fd575200db5b53f6ea6818dd017f1b43190db12",
"versionType": "git"
},
{
"lessThan": "7f40b346462f563a0d6e841a77b5163d2a882a04",
"status": "affected",
"version": "8fd575200db5b53f6ea6818dd017f1b43190db12",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/s390/block/dasd_eckd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.6.151",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/dasd: Fix undersized format-check buffer\n\nfmt_buffer_size in dasd_eckd_check_device_format() is declared as\nint, even though one of the multiplicands, sizeof(struct eckd_count),\nis a size_t. The expression\n\n trkcount * rpt_max * sizeof(struct eckd_count)\n\nis therefore correctly evaluated at 64-bit width, but the result is\nsilently truncated when it is stored back into the 32-bit\nfmt_buffer_size variable. For a sufficiently large track range\n(start_unit/stop_unit are caller-controlled) this truncation\nyields a buffer size far smaller than the number of tracks actually\nrequested. kzalloc() then succeeds with an undersized allocation,\nwhile the subsequent channel program build still operates on the\nuntruncated track count and writes past the end of that buffer.\n\nCompute the buffer size with check_mul_overflow() and keep it in a\nsize_t, so that a value that no longer fits results in -EINVAL\ninstead of a silently truncated allocation size."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only via the BIODASDCHECKFMT ioctl on an s390 DASD block device (/dev/dasd*), through blkdev_ioctl \u2192 dasd_ioctl \u2192 dasd_ioctl_check_format \u2192 dasd_eckd_check_device_format; it is not reachable over the network or by physical media insertion.\nAC:L - On large IBM Z/LinuxONE ECKD volumes (long_no_cyl geometry), an attacker who can open the device fully controls start_unit/stop_unit in the ioctl and can reliably force trkcount*rpt_max*sizeof(eckd_count) past 32 bits, causing undersized kzalloc while CCW/TCW channel programs still DMA-write the full track range.\nPR:L - Unlike BIODASDFMT, dasd_ioctl_check_format performs no CAP_SYS_ADMIN check; any local principal with permission to open the DASD block device (e.g., disk-group membership or equivalent device-node access) can issue BIODASDCHECKFMT without init-namespace root.\nUI:N - Exploitation requires only the attacker issuing the ioctl with crafted track-range parameters; no separate victim action such as mounting a filesystem or opening a file is needed.\nS:U - The heap corruption occurs entirely within the host kernel DASD driver on the same LPAR; it does not cross a VM, container, or IOMMU security boundary to affect a different authority.\nC:H - Hardware DMA via READ_COUNT CCWs/TCWs writes eckd_count structures past the kmalloc boundary, and dasd_eckd_format_evaluate_tracks then reads beyond the allocation; this out-of-bounds heap corruption can disclose adjacent kernel objects and support further memory-read primitives.\nI:H - Channel programs built in dasd_eckd_build_check/dasd_eckd_build_check_tcw DMA up to trkcount*rpt_max eight-byte eckd_count entries into an undersized GFP_KERNEL|GFP_DMA buffer, yielding a controllable kernel heap overflow writable for code-execution primitives.\nA:H - Corrupting kmalloc heap metadata and adjacent objects via large out-of-bounds DMA writes can trigger immediate kernel oops/panic or wedged I/O paths on mission-critical IBM Z storage nodes, satisfying high availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:26.950Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/aca18289c86f22d3fc2f3f6ff615286e7b1702f6"
},
{
"url": "https://git.kernel.org/stable/c/9f88dda2f22927d22498801a92cab6a9424eaf86"
},
{
"url": "https://git.kernel.org/stable/c/e16e0fc54120cee3c6f0362de95aab6792865857"
},
{
"url": "https://git.kernel.org/stable/c/87f3389cd3920714c53e704778f7ca7f1cf0c39c"
},
{
"url": "https://git.kernel.org/stable/c/7f40b346462f563a0d6e841a77b5163d2a882a04"
}
],
"title": "s390/dasd: Fix undersized format-check buffer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80710",
"datePublished": "2026-08-28T06:53:10.028Z",
"dateReserved": "2026-08-26T14:34:25.787Z",
"dateUpdated": "2026-08-29T06:22:26.950Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80709 (GCVE-0-2026-80709)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/zcrypt: Fix wrong domain value verification with EP11 CPRBs
There is a wrong upper limit check for the domain value when an EP11
CPRB is processed for sending to a crypto card. This check is only
active on custom device nodes but may lead to access heap memory
behind perms->adm when an administrative CPRB is sent.
Add correct limit (AP_DOMAINS = 256) checking to fix this.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cfd68b33094e1a92249850ff3c3c92ae9112a541 Version: cfd68b33094e1a92249850ff3c3c92ae9112a541 Version: cfd68b33094e1a92249850ff3c3c92ae9112a541 Version: cfd68b33094e1a92249850ff3c3c92ae9112a541 Version: cfd68b33094e1a92249850ff3c3c92ae9112a541 Version: cfd68b33094e1a92249850ff3c3c92ae9112a541 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/s390/crypto/zcrypt_api.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4589f742718d0256ea6dd1f5a78be6e689bdb8aa",
"status": "affected",
"version": "cfd68b33094e1a92249850ff3c3c92ae9112a541",
"versionType": "git"
},
{
"lessThan": "b505dcc8307d64468b463dfad45a03bf865c637e",
"status": "affected",
"version": "cfd68b33094e1a92249850ff3c3c92ae9112a541",
"versionType": "git"
},
{
"lessThan": "13e53d6ae1c3b2ff1be75b9ef09be26f4ec3ce15",
"status": "affected",
"version": "cfd68b33094e1a92249850ff3c3c92ae9112a541",
"versionType": "git"
},
{
"lessThan": "672b12940e3f1336dfed5287412a71500adf2a76",
"status": "affected",
"version": "cfd68b33094e1a92249850ff3c3c92ae9112a541",
"versionType": "git"
},
{
"lessThan": "1223477ca88e2396eca440919d0ca8754df79bd5",
"status": "affected",
"version": "cfd68b33094e1a92249850ff3c3c92ae9112a541",
"versionType": "git"
},
{
"lessThan": "983279d7f86ade73db86f886e09172dd567031b5",
"status": "affected",
"version": "cfd68b33094e1a92249850ff3c3c92ae9112a541",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/s390/crypto/zcrypt_api.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.1.183",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/zcrypt: Fix wrong domain value verification with EP11 CPRBs\n\nThere is a wrong upper limit check for the domain value when an EP11\nCPRB is processed for sending to a crypto card. This check is only\nactive on custom device nodes but may lead to access heap memory\nbehind perms-\u003eadm when an administrative CPRB is sent.\nAdd correct limit (AP_DOMAINS = 256) checking to fix this."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Reached only via ZSENDEP11CPRB ioctl on an s390 zcrypt custom zcdn character device (zcrypt_unlocked_ioctl -\u003e zsendep11cprb_ioctl -\u003e _zcrypt_send_ep11_cprb); no network, radio, or physical-bus entry path exists.\nAC:L - A local attacker with a permitted zcdn fd fully controls ep11_urb/CPRB target_id and the admin flag; domain values 256-65534 reliably trigger the flawed test_bit_inv() past perms-\u003eadm without races or conditions outside attacker control.\nPR:L - Exploitation requires local access to a custom zcdn node with ZSENDEP11CPRB enabled in ioctlmask; IBM Z/LinuxONE deployments routinely delegate such restricted crypto device access to non-root service accounts, not init-namespace root alone.\nUI:N - The attacker triggers the flaw by issuing ZSENDEP11CPRB with a crafted administrative EP11 CPRB from their own process; no separate victim action such as mounting a filesystem or opening a file is required.\nS:U - Impact is kernel heap out-of-bounds read and bypass of per-device admin-domain filtering within the host kernel address space; it does not cross a VM, IOMMU, or other changed security-authority boundary.\nC:H - Using domain 256-65534 with an admin CPRB makes test_bit_inv() index beyond the 256-bit perms-\u003eadm bitmap, reading adjacent kmalloc heap memory behind the zcdn_device allocation.\nI:H - If the out-of-bounds read observes a set bit, the admask admin-domain check passes and unauthorized EP11 administrative CPRBs can reach crypto control domains outside the device\u0027s intended permissions.\nA:H - Large crafted domain values make test_bit_inv() read far beyond the zcdn_device kmalloc object, which can access unmapped memory and provoke a kernel oops or panic during the ioctl path."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:25.717Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4589f742718d0256ea6dd1f5a78be6e689bdb8aa"
},
{
"url": "https://git.kernel.org/stable/c/b505dcc8307d64468b463dfad45a03bf865c637e"
},
{
"url": "https://git.kernel.org/stable/c/13e53d6ae1c3b2ff1be75b9ef09be26f4ec3ce15"
},
{
"url": "https://git.kernel.org/stable/c/672b12940e3f1336dfed5287412a71500adf2a76"
},
{
"url": "https://git.kernel.org/stable/c/1223477ca88e2396eca440919d0ca8754df79bd5"
},
{
"url": "https://git.kernel.org/stable/c/983279d7f86ade73db86f886e09172dd567031b5"
}
],
"title": "s390/zcrypt: Fix wrong domain value verification with EP11 CPRBs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80709",
"datePublished": "2026-08-28T06:53:09.439Z",
"dateReserved": "2026-08-26T14:34:25.787Z",
"dateUpdated": "2026-08-29T06:22:25.717Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80708 (GCVE-0-2026-80708)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/zcrypt: Fix missing mem scrub at clear key import in cca_clr2cipherkey()
The helper function _ip_cprb_helper() uses internal buffer memory for
building and processing CPRBs. After use this buffer was never
scrubbed which could lead to leaving for example clear key material in
memory which could be exposed via tricky reuse of this same memory.
Extend the _ip_cprb_helper() function with another parameter 'scrub'
used to steer scrubbing of this buffer. So now the caller has the
opportunity to decide if scrubbing is needed or not.
Extend the clear key to secure key token import process in function
cca_clr2cipherkey() to tell the helper function from above to scrub
the cprb buffer when the clear key value is part of the request data.
Add explicit scrubbing on return from function cca_clr2cipherkey() for
the random EXOR buffer and the cprb buffer.
Overall this cleans the internal used buffer in case of clear key
import to prevent sensitive data to get exposed.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd Version: 4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/s390/crypto/zcrypt_ccamisc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8e1c0def77b7450be0ed607ed0d7bae629d30020",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "be7ae07fb745d1cf575b03a178a055b0a2859364",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "4e26d0d72bfdec311f12acfa0c6b7fbeb6a343d3",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "7dd6e556dbfc91d3d511cfd1015d2dad42608010",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "b453003ae6a869f5bdf025b5519cbb38295ae4f1",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "fbb0410986e8ad214121e51a4a28c3d0a10b7644",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "ebfbb9ac7adbb1e3556100b54a27e8a9b102feac",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
},
{
"lessThan": "01476391aecef36a3b789ee844357b22fbc90665",
"status": "affected",
"version": "4bc123b18ce6ae6c42c69d0456b5acbd2f7bc8bd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/s390/crypto/zcrypt_ccamisc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.4"
},
{
"lessThan": "5.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.152",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.104",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.265",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/zcrypt: Fix missing mem scrub at clear key import in cca_clr2cipherkey()\n\nThe helper function _ip_cprb_helper() uses internal buffer memory for\nbuilding and processing CPRBs. After use this buffer was never\nscrubbed which could lead to leaving for example clear key material in\nmemory which could be exposed via tricky reuse of this same memory.\n\nExtend the _ip_cprb_helper() function with another parameter \u0027scrub\u0027\nused to steer scrubbing of this buffer. So now the caller has the\nopportunity to decide if scrubbing is needed or not.\n\nExtend the clear key to secure key token import process in function\ncca_clr2cipherkey() to tell the helper function from above to scrub\nthe cprb buffer when the clear key value is part of the request data.\n\nAdd explicit scrubbing on return from function cca_clr2cipherkey() for\nthe random EXOR buffer and the cprb buffer.\n\nOverall this cleans the internal used buffer in case of clear key\nimport to prevent sensitive data to get exposed."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:08.843Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8e1c0def77b7450be0ed607ed0d7bae629d30020"
},
{
"url": "https://git.kernel.org/stable/c/be7ae07fb745d1cf575b03a178a055b0a2859364"
},
{
"url": "https://git.kernel.org/stable/c/4e26d0d72bfdec311f12acfa0c6b7fbeb6a343d3"
},
{
"url": "https://git.kernel.org/stable/c/7dd6e556dbfc91d3d511cfd1015d2dad42608010"
},
{
"url": "https://git.kernel.org/stable/c/b453003ae6a869f5bdf025b5519cbb38295ae4f1"
},
{
"url": "https://git.kernel.org/stable/c/fbb0410986e8ad214121e51a4a28c3d0a10b7644"
},
{
"url": "https://git.kernel.org/stable/c/ebfbb9ac7adbb1e3556100b54a27e8a9b102feac"
},
{
"url": "https://git.kernel.org/stable/c/01476391aecef36a3b789ee844357b22fbc90665"
}
],
"title": "s390/zcrypt: Fix missing mem scrub at clear key import in cca_clr2cipherkey()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80708",
"datePublished": "2026-08-28T06:53:08.843Z",
"dateReserved": "2026-08-26T14:34:25.787Z",
"dateUpdated": "2026-08-28T06:53:08.843Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80707 (GCVE-0-2026-80707)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
can: j1939: transport: j1939_session_fresh_new(): initialize receive buffer
Zero the allocated buffer in j1939_session_fresh_new() to ensure it
contains no residual data.
While there is a potential performance impact if users allocate maximum
sized ETP buffers, most real-world use cases are not noticeably affected
since the maximum known buffer size is typically around 65K.
[mkl: add Message-ID]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9d71dd0c70099914fcd063135da3c580865e924c Version: 9d71dd0c70099914fcd063135da3c580865e924c Version: 9d71dd0c70099914fcd063135da3c580865e924c Version: 9d71dd0c70099914fcd063135da3c580865e924c Version: 9d71dd0c70099914fcd063135da3c580865e924c Version: 9d71dd0c70099914fcd063135da3c580865e924c Version: 9d71dd0c70099914fcd063135da3c580865e924c Version: 9d71dd0c70099914fcd063135da3c580865e924c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/can/j1939/transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "348818277a3646d5b9fa60c9d20c00dc4bc86832",
"status": "affected",
"version": "9d71dd0c70099914fcd063135da3c580865e924c",
"versionType": "git"
},
{
"lessThan": "f3e120a34b336079479fa10f706f0636eaa6e751",
"status": "affected",
"version": "9d71dd0c70099914fcd063135da3c580865e924c",
"versionType": "git"
},
{
"lessThan": "bbfa49d1e287de44994955b44d19281be3195b44",
"status": "affected",
"version": "9d71dd0c70099914fcd063135da3c580865e924c",
"versionType": "git"
},
{
"lessThan": "194d67e92197eb820f4c2c6605d9721333b3eba0",
"status": "affected",
"version": "9d71dd0c70099914fcd063135da3c580865e924c",
"versionType": "git"
},
{
"lessThan": "038bad8e16c2e28acf31f0b527a816fb23a57269",
"status": "affected",
"version": "9d71dd0c70099914fcd063135da3c580865e924c",
"versionType": "git"
},
{
"lessThan": "8604a3b81b9d0ceaf04fee5f52e701f623a179f9",
"status": "affected",
"version": "9d71dd0c70099914fcd063135da3c580865e924c",
"versionType": "git"
},
{
"lessThan": "d5b3613c7d69d8dcb4dd6704f1f463198ce9f6cf",
"status": "affected",
"version": "9d71dd0c70099914fcd063135da3c580865e924c",
"versionType": "git"
},
{
"lessThan": "eb96c58907922546e415e545fe9a14ea63b02719",
"status": "affected",
"version": "9d71dd0c70099914fcd063135da3c580865e924c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/can/j1939/transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.4"
},
{
"lessThan": "5.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.265",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncan: j1939: transport: j1939_session_fresh_new(): initialize receive buffer\n\nZero the allocated buffer in j1939_session_fresh_new() to ensure it\ncontains no residual data.\n\nWhile there is a potential performance impact if users allocate maximum\nsized ETP buffers, most real-world use cases are not noticeably affected\nsince the maximum known buffer size is typically around 65K.\n\n[mkl: add Message-ID]"
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - Received J1939 TP/ETP RTS frames enter j1939_can_recv()\u2192j1939_tp_recv()\u2192j1939_xtp_rx_rts_session_new()\u2192j1939_session_fresh_new() from the CAN receive path with no local syscall; telematics/CAN gateways routinely expose J1939 to remote peers, consistent with prior kernel CNA scores for the same subsystem (e.g. CVE-2023-52887, CVE-2026-22997).\nAC:L - The attacker controls RTS-declared message size, DATA/EOMA sequencing, and timing; skb_put() leaves the entire allocation uninitialized, j1939_xtp_rx_eoma_one() completes without verifying all data packets arrived, and recvmsg returns the full skb length\u2014reliably mixing attacker data with residual heap bytes (including trailing padding).\nPR:N - J1939 receive processing has no authentication gate; an unauthenticated CAN/J1939 peer can send crafted transport-control frames to a victim ECU that already runs a bound J1939 socket (normal automotive, trucking, and industrial deployments) without any Linux account or capability on the target.\nUI:N - No victim interaction is required beyond the target already operating the J1939 stack with a bound socket; the attacker only transmits crafted frames on the bus to trigger session allocation and completion.\nS:U - Uninitialized kernel heap contents are disclosed to matching local J1939 socket owners via recvmsg; impact remains within the same kernel security authority and does not cross VM, IOMMU, or sandbox boundaries.\nC:H - j1939_session_fresh_new() allocates the receive buffer with skb_put() instead of skb_put_zero(), so unfilled bytes retain prior slab contents; on completion j1939_session_completed() delivers the full total_message_size buffer (up to tp_max_packet_size, commonly ~65K) to userspace, disclosing kernel pointers and heap data.\nI:N - The bug only omits zero-initialization of the receive skb; there is no out-of-bounds write, use-after-free, or other memory-corruption primitive enabling integrity impact.\nA:N - Sessions complete or abort normally without kernel panic, oops, hang, or resource exhaustion; the vulnerability is an information-disclosure defect with no availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:24.493Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/348818277a3646d5b9fa60c9d20c00dc4bc86832"
},
{
"url": "https://git.kernel.org/stable/c/f3e120a34b336079479fa10f706f0636eaa6e751"
},
{
"url": "https://git.kernel.org/stable/c/bbfa49d1e287de44994955b44d19281be3195b44"
},
{
"url": "https://git.kernel.org/stable/c/194d67e92197eb820f4c2c6605d9721333b3eba0"
},
{
"url": "https://git.kernel.org/stable/c/038bad8e16c2e28acf31f0b527a816fb23a57269"
},
{
"url": "https://git.kernel.org/stable/c/8604a3b81b9d0ceaf04fee5f52e701f623a179f9"
},
{
"url": "https://git.kernel.org/stable/c/d5b3613c7d69d8dcb4dd6704f1f463198ce9f6cf"
},
{
"url": "https://git.kernel.org/stable/c/eb96c58907922546e415e545fe9a14ea63b02719"
}
],
"title": "can: j1939: transport: j1939_session_fresh_new(): initialize receive buffer",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80707",
"datePublished": "2026-08-28T06:53:08.244Z",
"dateReserved": "2026-08-26T14:34:25.787Z",
"dateUpdated": "2026-08-29T06:22:24.493Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80706 (GCVE-0-2026-80706)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
can: softing: fw_parse(): validate firmware record spans
fw_parse() reads a fixed record header, a firmware-provided payload,
and a trailing checksum without knowing the end of the firmware blob. A
truncated record can therefore make those reads exceed the blob.
The same record also supplies addresses and lengths for writes into
DPRAM. The generic loader uses wrap-prone mixed signed arithmetic for its
bounds check, while the application loader does not bound the staging
copy at all.
Pass the firmware end to the parser and validate the full source record.
Use a signed wide offset for generic DPRAM records and validate the
application staging span against the mapped DPRAM before copying.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c Version: 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c Version: 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c Version: 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c Version: 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c Version: 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c Version: 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c Version: 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/can/softing/softing_fw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f6d9a6a9512430b395a1940d7b216394fd02d30b",
"status": "affected",
"version": "03fd3cf5a179da12e6bee5e9d74b648aff68dc4c",
"versionType": "git"
},
{
"lessThan": "84c850b08fc0d671c245144b619683129b55690a",
"status": "affected",
"version": "03fd3cf5a179da12e6bee5e9d74b648aff68dc4c",
"versionType": "git"
},
{
"lessThan": "d0eac0ea7cf493e787fd7b4a556e43ef03cb4b50",
"status": "affected",
"version": "03fd3cf5a179da12e6bee5e9d74b648aff68dc4c",
"versionType": "git"
},
{
"lessThan": "ae588e5b9cc268de1aabf30f939f0870717ca164",
"status": "affected",
"version": "03fd3cf5a179da12e6bee5e9d74b648aff68dc4c",
"versionType": "git"
},
{
"lessThan": "ad331e26fd213a19fee0de18cdacd67b7ff5b478",
"status": "affected",
"version": "03fd3cf5a179da12e6bee5e9d74b648aff68dc4c",
"versionType": "git"
},
{
"lessThan": "2ee477e541a6d5e434d6a4041c6b677ab42e1d82",
"status": "affected",
"version": "03fd3cf5a179da12e6bee5e9d74b648aff68dc4c",
"versionType": "git"
},
{
"lessThan": "808ed899dcf8bdef66894fda5eb7ee4bb0eb8dc1",
"status": "affected",
"version": "03fd3cf5a179da12e6bee5e9d74b648aff68dc4c",
"versionType": "git"
},
{
"lessThan": "856d6cb04e5407523566b075841dcd6423757d1c",
"status": "affected",
"version": "03fd3cf5a179da12e6bee5e9d74b648aff68dc4c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/can/softing/softing_fw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.38"
},
{
"lessThan": "2.6.38",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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.265",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.38",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncan: softing: fw_parse(): validate firmware record spans\n\nfw_parse() reads a fixed record header, a firmware-provided payload,\nand a trailing checksum without knowing the end of the firmware blob. A\ntruncated record can therefore make those reads exceed the blob.\n\nThe same record also supplies addresses and lengths for writes into\nDPRAM. The generic loader uses wrap-prone mixed signed arithmetic for its\nbounds check, while the application loader does not bound the staging\ncopy at all.\n\nPass the firmware end to the parser and validate the full source record.\nUse a signed wide offset for generic DPRAM records and validate the\napplication staging span against the mapped DPRAM before copying."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Malformed firmware is consumed only via request_firmware() from the local firmware search path during softing_pdev_probe/softing_card_boot; CAN frames, network protocols, and bus traffic never reach fw_parse(), so exploitation requires local presence on the host loading the blob.\nAC:L - The attacker fully controls record type, addr, len, and payload in the Structured Binary Format file; a truncated final record or integer-wrapping addr/len values deterministically bypass the old bounds checks and trigger out-of-bounds reads/writes on every probe without races or layout luck.\nPR:L - fw_parse() performs no capability or credential checks, firmware paths under /lib/firmware/softing-4.6/ are writable by vendor/OTA accounts on many embedded and diagnostic deployments, and the sysfs firmware fallback loader exposes world-writable loading/data during request_firmware(), so a low-privileged local user can supply the malicious image.\nUI:N - Once the crafted blob is in place, parsing runs automatically from softing_card_boot during PCMCIA/platform probe on card insert or module bind; the attacker can trigger reload by reinserting the card or reloading softingcs themselves without requiring a separate victim action.\nS:U - The out-of-bounds reads and MMIO/DPRAM writes corrupt host kernel memory and the mapped Softing card region only; this is not a VM escape, IOMMU bypass, or other cross-security-authority breakout.\nC:H - fw_parse() reads record headers, variable-length payloads, and trailing checksums past the firmware buffer end, performing an out-of-bounds kernel read of adjacent vmalloc/kmalloc memory that can disclose sensitive kernel contents beyond a few bytes.\nI:H - Records supply addr and len used in memcpy_toio() into card DPRAM; the pre-fix mixed signed/unsigned bounds check could wrap and softing_load_app_fw staged copies without any DPRAM bound, enabling attacker-controlled out-of-bounds MMIO writes exploitable for memory corruption.\nA:H - Out-of-bounds MMIO writes past the ioremap window and out-of-bounds firmware-buffer reads readily fault on unmapped pages or corrupt critical DPRAM state, producing kernel oops/panic and denying use of the CAN interface on probe."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:23.266Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f6d9a6a9512430b395a1940d7b216394fd02d30b"
},
{
"url": "https://git.kernel.org/stable/c/84c850b08fc0d671c245144b619683129b55690a"
},
{
"url": "https://git.kernel.org/stable/c/d0eac0ea7cf493e787fd7b4a556e43ef03cb4b50"
},
{
"url": "https://git.kernel.org/stable/c/ae588e5b9cc268de1aabf30f939f0870717ca164"
},
{
"url": "https://git.kernel.org/stable/c/ad331e26fd213a19fee0de18cdacd67b7ff5b478"
},
{
"url": "https://git.kernel.org/stable/c/2ee477e541a6d5e434d6a4041c6b677ab42e1d82"
},
{
"url": "https://git.kernel.org/stable/c/808ed899dcf8bdef66894fda5eb7ee4bb0eb8dc1"
},
{
"url": "https://git.kernel.org/stable/c/856d6cb04e5407523566b075841dcd6423757d1c"
}
],
"title": "can: softing: fw_parse(): validate firmware record spans",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80706",
"datePublished": "2026-08-28T06:53:07.640Z",
"dateReserved": "2026-08-26T14:34:25.787Z",
"dateUpdated": "2026-08-29T06:22:23.266Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80705 (GCVE-0-2026-80705)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: check if dml21_add_phantom_plane() is successful
Verify that the phantom plane was allocated to avoid a later
segfault.
(cherry picked from commit 5adb54abe5a8e82cbff7f8806db30a5f4924329f)
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/dc/dml2_0/dml21/dml21_utils.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "062cfd6c678f6647c8841f684d6dadab08d95512",
"status": "affected",
"version": "70839da6360500a82e4d5f78499284474cbed7c1",
"versionType": "git"
},
{
"lessThan": "000acb4ce7fb9feba3072ce468ad681f6585cd5d",
"status": "affected",
"version": "70839da6360500a82e4d5f78499284474cbed7c1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/dc/dml2_0/dml21/dml21_utils.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "7.1.8",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/display: check if dml21_add_phantom_plane() is successful\n\nVerify that the phantom plane was allocated to avoid a later\nsegfault.\n\n(cherry picked from commit 5adb54abe5a8e82cbff7f8806db30a5f4924329f)"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:07.045Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/062cfd6c678f6647c8841f684d6dadab08d95512"
},
{
"url": "https://git.kernel.org/stable/c/000acb4ce7fb9feba3072ce468ad681f6585cd5d"
}
],
"title": "drm/amd/display: check if dml21_add_phantom_plane() is successful",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80705",
"datePublished": "2026-08-28T06:53:07.045Z",
"dateReserved": "2026-08-26T14:34:25.787Z",
"dateUpdated": "2026-08-28T06:53:07.045Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80704 (GCVE-0-2026-80704)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: use proper context for logging
The same as the rest of the code, get_ss_info_from_atombios() uses
calc_pll_cs->ctx->logger for logging. But calc_pll_cs->ctx is
initialized only later in calc_pll_max_vco_construct(). Therefore, any
output using DC_LOG_SYNC() leads to a NULL pointer deference in
get_ss_info_from_atombios().
According to Sashiko, the very same problem exists in
dce112_get_pix_clk_dividers() and dcn3_get_pix_clk_dividers() too.
To avoid accessing the NULL context, use clk_src->base.ctx->logger
everywhere. That context in base is initialized earlier in
dce110_clk_src_construct() and dce112_clk_src_construct(). Before
get_ss_info_from_atombios() or Sashiko's get_pix_clk_dividers functions
above are actually called. This is done by redefining DC_LOGGER to
CTX->logger.
Before:
dce110_clk_src_construct() did:
-> sets clk_src->base.ctx = ctx;
-> ss_info_from_atombios_create()
-> get_ss_info_from_atombios() <- uses calc_pll_cs->ctx # BOOM
-> calc_pll_max_vco_construct() <- sets calc_pll_cs->ctx
After:
dce110_clk_src_construct() does:
-> sets clk_src->base.ctx = ctx;
-> ss_info_from_atombios_create()
-> get_ss_info_from_atombios() <- uses clk_src->base.ctx
(cherry picked from commit 6f16fcbb0c46a87e3d9685407e906573d60104b0)
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a94e62b7c7018fcfe0251e53fa96af30f12d923a",
"status": "affected",
"version": "1296423bf23c7a58133970e223b1f47ec6570308",
"versionType": "git"
},
{
"lessThan": "02647d98340738f918690ed227fdcf154db1b84a",
"status": "affected",
"version": "1296423bf23c7a58133970e223b1f47ec6570308",
"versionType": "git"
},
{
"lessThan": "f556bc844cc4423e5ad41ae41a4c24f1cf75b978",
"status": "affected",
"version": "1296423bf23c7a58133970e223b1f47ec6570308",
"versionType": "git"
},
{
"lessThan": "114b42507b6a23d9d24e24e4ef165233332c64d4",
"status": "affected",
"version": "1296423bf23c7a58133970e223b1f47ec6570308",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.12.103",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/display: use proper context for logging\n\nThe same as the rest of the code, get_ss_info_from_atombios() uses\ncalc_pll_cs-\u003ectx-\u003elogger for logging. But calc_pll_cs-\u003ectx is\ninitialized only later in calc_pll_max_vco_construct(). Therefore, any\noutput using DC_LOG_SYNC() leads to a NULL pointer deference in\nget_ss_info_from_atombios().\n\nAccording to Sashiko, the very same problem exists in\ndce112_get_pix_clk_dividers() and dcn3_get_pix_clk_dividers() too.\n\nTo avoid accessing the NULL context, use clk_src-\u003ebase.ctx-\u003elogger\neverywhere. That context in base is initialized earlier in\ndce110_clk_src_construct() and dce112_clk_src_construct(). Before\nget_ss_info_from_atombios() or Sashiko\u0027s get_pix_clk_dividers functions\nabove are actually called. This is done by redefining DC_LOGGER to\nCTX-\u003elogger.\n\nBefore:\ndce110_clk_src_construct() did:\n -\u003e sets clk_src-\u003ebase.ctx = ctx;\n -\u003e ss_info_from_atombios_create()\n -\u003e get_ss_info_from_atombios() \u003c- uses calc_pll_cs-\u003ectx # BOOM\n -\u003e calc_pll_max_vco_construct() \u003c- sets calc_pll_cs-\u003ectx\n\nAfter:\ndce110_clk_src_construct() does:\n -\u003e sets clk_src-\u003ebase.ctx = ctx;\n -\u003e ss_info_from_atombios_create()\n -\u003e get_ss_info_from_atombios() \u003c- uses clk_src-\u003ebase.ctx\n\n(cherry picked from commit 6f16fcbb0c46a87e3d9685407e906573d60104b0)"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:06.442Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a94e62b7c7018fcfe0251e53fa96af30f12d923a"
},
{
"url": "https://git.kernel.org/stable/c/02647d98340738f918690ed227fdcf154db1b84a"
},
{
"url": "https://git.kernel.org/stable/c/f556bc844cc4423e5ad41ae41a4c24f1cf75b978"
},
{
"url": "https://git.kernel.org/stable/c/114b42507b6a23d9d24e24e4ef165233332c64d4"
}
],
"title": "drm/amd/display: use proper context for logging",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80704",
"datePublished": "2026-08-28T06:53:06.442Z",
"dateReserved": "2026-08-26T14:34:25.786Z",
"dateUpdated": "2026-08-28T06:53:06.442Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80703 (GCVE-0-2026-80703)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: Fix missing authorization check in KFD_IOC_DBG_TRAP_DISABLE
Prevent unauthorized termination of active GPU debug sessions.
Previously, users with /dev/kfd access could terminate another process's
debug session without proper ownership or ptrace authorization.
(cherry picked from commit 4db4c5ffd5585b72622ecf6ffedf2da258ee23f5)
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 0 ≤ Version: 0 ≤ Version: 0 ≤ Version: 0 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_chardev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ce813614f63b020a826071276a92f2cfae7cba79",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b8c05061997408bf81759f2dd31cd5f66771d15f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9e52212aff8ed1fd9087728f61243ce3efd9d0ac",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "4070909ac042f44654aac72f7986ea550c96f591",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "99b2fe4f19e3be0a8d0a0b5ea98d855970889653",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6.6.151",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.12.103",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.18.44",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "7.1.8",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdkfd/kfd_chardev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.6.151",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: Fix missing authorization check in KFD_IOC_DBG_TRAP_DISABLE\n\nPrevent unauthorized termination of active GPU debug sessions.\nPreviously, users with /dev/kfd access could terminate another process\u0027s\ndebug session without proper ownership or ptrace authorization.\n\n(cherry picked from commit 4db4c5ffd5585b72622ecf6ffedf2da258ee23f5)"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:05.851Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ce813614f63b020a826071276a92f2cfae7cba79"
},
{
"url": "https://git.kernel.org/stable/c/b8c05061997408bf81759f2dd31cd5f66771d15f"
},
{
"url": "https://git.kernel.org/stable/c/9e52212aff8ed1fd9087728f61243ce3efd9d0ac"
},
{
"url": "https://git.kernel.org/stable/c/4070909ac042f44654aac72f7986ea550c96f591"
},
{
"url": "https://git.kernel.org/stable/c/99b2fe4f19e3be0a8d0a0b5ea98d855970889653"
}
],
"title": "drm/amdkfd: Fix missing authorization check in KFD_IOC_DBG_TRAP_DISABLE",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80703",
"datePublished": "2026-08-28T06:53:05.851Z",
"dateReserved": "2026-08-26T14:34:25.786Z",
"dateUpdated": "2026-08-28T06:53:05.851Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80702 (GCVE-0-2026-80702)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size
Two sites in vmwgfx_resource.c assign boolean literals to
res->guest_memory_size, which is an unsigned long allocation-size
field; the intended target is the adjacent res->guest_memory_dirty
bitfield. After the assignments the field holds 0 or 1 instead of
the resource's MOB allocation size:
- vmw_resource_release() writes 0 (false), and
- vmw_resource_unbind_list() writes 1 (true).
Subsequent revalidation paths read guest_memory_size when computing
the dirty page range (vmw_bo_dirty_transfer_to_res()) and the buffer
allocation size (vmw_resource_buf_alloc()), producing zero-length
walks or wrap-around ranges that read or write past the MOB bitmap.
The dirty-tracking intent of the original code (mark the resource as
dirtied since the last sync) is also lost, since guest_memory_dirty
is never updated.
Rename both assignments to guest_memory_dirty.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_resource.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "21bbe38faee4a195d33a93e3908e307807f7745d",
"status": "affected",
"version": "668b206601c5f5063e03b76784a0d3024fa2b249",
"versionType": "git"
},
{
"lessThan": "9d6cbb76fe9cd760351f6b0b20f1bf788eab8fa6",
"status": "affected",
"version": "668b206601c5f5063e03b76784a0d3024fa2b249",
"versionType": "git"
},
{
"lessThan": "282f261cb035e5f01a486f76d356b7e9dbfba73f",
"status": "affected",
"version": "668b206601c5f5063e03b76784a0d3024fa2b249",
"versionType": "git"
},
{
"lessThan": "3b2bb16a5b622867140d69925db411ac8ecb3b2b",
"status": "affected",
"version": "668b206601c5f5063e03b76784a0d3024fa2b249",
"versionType": "git"
},
{
"lessThan": "83195b778f2d109a3a4f3ffaba4dce7e4cdb58aa",
"status": "affected",
"version": "668b206601c5f5063e03b76784a0d3024fa2b249",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_resource.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.4"
},
{
"lessThan": "6.4",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.6.151",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size\n\nTwo sites in vmwgfx_resource.c assign boolean literals to\nres-\u003eguest_memory_size, which is an unsigned long allocation-size\nfield; the intended target is the adjacent res-\u003eguest_memory_dirty\nbitfield. After the assignments the field holds 0 or 1 instead of\nthe resource\u0027s MOB allocation size:\n\n - vmw_resource_release() writes 0 (false), and\n - vmw_resource_unbind_list() writes 1 (true).\n\nSubsequent revalidation paths read guest_memory_size when computing\nthe dirty page range (vmw_bo_dirty_transfer_to_res()) and the buffer\nallocation size (vmw_resource_buf_alloc()), producing zero-length\nwalks or wrap-around ranges that read or write past the MOB bitmap.\nThe dirty-tracking intent of the original code (mark the resource as\ndirtied since the last sync) is also lost, since guest_memory_dirty\nis never updated.\n\nRename both assignments to guest_memory_dirty."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Reachable only via local DRM ioctls on the vmwgfx render node (surface/context create-unref, DRM_VMW_EXECBUF, synccpu); vmw_resource_unbind_list runs from vmw_bo_move_notify during MOB eviction, not from any network or physical bus.\nAC:L - An unprivileged attacker controls the full GPU resource lifecycle and can force MOB moves plus subsequent revalidation (execbuf, memory pressure, destroy paths) to clobber guest_memory_size to 0/1 without races or victim-dependent heap layout.\nPR:L - Entry ioctls use DRM_RENDER_ALLOW, so any local user with access to /dev/dri/renderD* on a VMware SVGA guest can trigger vmw_resource_release or vmw_resource_unbind_list and the follow-on validate/dirty paths without init-namespace root.\nUI:N - Exploitation requires only the attacker opening the DRM render device and issuing crafted GPU resource operations; no additional actions by another user or administrator are needed.\nS:U - The bug corrupts guest-kernel vmwgfx MOB dirty-tracking and heap metadata during resource revalidation; impact is confined to the guest kernel security domain and does not directly cross a VM/host or IOMMU boundary.\nC:H - Clobbering guest_memory_size to 0 or 1 breaks dirty page-range math in vmw_bo_dirty_transfer_to_res and vmw_resource_buf_alloc, producing zero-length or wrap-around walks that read past the MOB dirty bitmap and adjacent kernel heap memory.\nI:H - The same corrupted size drives out-of-bounds bitmap_clear and dirty_sync operations past the MOB bitmap and undersized reallocations, yielding a kernel heap write primitive that can be leveraged for guest privilege escalation.\nA:H - Out-of-bounds MOB bitmap access and mis-sized buffer reallocation during revalidation after unbind or release can kernel-oops or panic the guest, providing a reliable denial-of-service against the VM."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:22.050Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/21bbe38faee4a195d33a93e3908e307807f7745d"
},
{
"url": "https://git.kernel.org/stable/c/9d6cbb76fe9cd760351f6b0b20f1bf788eab8fa6"
},
{
"url": "https://git.kernel.org/stable/c/282f261cb035e5f01a486f76d356b7e9dbfba73f"
},
{
"url": "https://git.kernel.org/stable/c/3b2bb16a5b622867140d69925db411ac8ecb3b2b"
},
{
"url": "https://git.kernel.org/stable/c/83195b778f2d109a3a4f3ffaba4dce7e4cdb58aa"
}
],
"title": "drm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80702",
"datePublished": "2026-08-28T06:53:05.253Z",
"dateReserved": "2026-08-26T14:34:25.786Z",
"dateUpdated": "2026-08-29T06:22:22.050Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80701 (GCVE-0-2026-80701)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vmwgfx: enforce cursor size limits for MOB cursors
vmw_cursor_plane_atomic_check() bounds cursor width and height only
on the legacy update path; the SVGA_CAP2_CURSOR_MOB path -- the
default on modern hosts -- accepts any size. When the requested size
exceeds SVGA_REG_CURSOR_MAX_DIMENSION or SVGA_REG_MOB_MAX_SIZE,
vmw_cursor_mob_get() returns -EINVAL and leaves vps->cursor.mob NULL.
Its return value is then discarded in vmw_cursor_plane_prepare_fb(),
so the subsequent vmw_cursor_update_mob() calls
vmw_bo_map_and_cache(NULL) and oopses inside
vmw_bo_map_and_cache_size() on the tbo.base.size load.
Reachable from any DRM master via DRM_IOCTL_MODE_CURSOR2 with a
sufficiently large width or height (e.g. cursor_max_dim + 1).
Reject oversized cursors in atomic_check for both MOB-backed cursor
update types. The MOB byte-size limit only applies to the
SVGA_CAP2_CURSOR_MOB path (vmw_cursor_mob_size() returns 0 for
GB_ONLY); compute the required MOB size in 64-bit to avoid overflow
when very large dimensions are requested.
In prepare_fb only call vmw_cursor_mob_get()/_map() for
VMW_CURSOR_UPDATE_MOB -- the GB_ONLY path uses bo->map.virtual
directly and would otherwise be silently downgraded to NONE on hosts
without SVGA_CAP2_CURSOR_MOB (where vmw_cursor_mob_get() always
returns -EINVAL). Degrade the update to NONE if vmw_cursor_mob_get()
or vmw_cursor_mob_map() fails so the update path does not run with a
NULL backing MOB.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1eb4f796695be39e0b5c4383350033ced9ade703",
"status": "affected",
"version": "965544150d1cadf0e8f5bb6c13c19697e46e1429",
"versionType": "git"
},
{
"lessThan": "9109b7935b9c058b75348610ef8437c52f9020e3",
"status": "affected",
"version": "965544150d1cadf0e8f5bb6c13c19697e46e1429",
"versionType": "git"
},
{
"lessThan": "d5ed8749168ad13c0dbaa8300f68d854b6076966",
"status": "affected",
"version": "965544150d1cadf0e8f5bb6c13c19697e46e1429",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.16"
},
{
"lessThan": "6.16",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.18.44",
"versionStartIncluding": "6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vmwgfx: enforce cursor size limits for MOB cursors\n\nvmw_cursor_plane_atomic_check() bounds cursor width and height only\non the legacy update path; the SVGA_CAP2_CURSOR_MOB path -- the\ndefault on modern hosts -- accepts any size. When the requested size\nexceeds SVGA_REG_CURSOR_MAX_DIMENSION or SVGA_REG_MOB_MAX_SIZE,\nvmw_cursor_mob_get() returns -EINVAL and leaves vps-\u003ecursor.mob NULL.\nIts return value is then discarded in vmw_cursor_plane_prepare_fb(),\nso the subsequent vmw_cursor_update_mob() calls\nvmw_bo_map_and_cache(NULL) and oopses inside\nvmw_bo_map_and_cache_size() on the tbo.base.size load.\n\nReachable from any DRM master via DRM_IOCTL_MODE_CURSOR2 with a\nsufficiently large width or height (e.g. cursor_max_dim + 1).\n\nReject oversized cursors in atomic_check for both MOB-backed cursor\nupdate types. The MOB byte-size limit only applies to the\nSVGA_CAP2_CURSOR_MOB path (vmw_cursor_mob_size() returns 0 for\nGB_ONLY); compute the required MOB size in 64-bit to avoid overflow\nwhen very large dimensions are requested.\n\nIn prepare_fb only call vmw_cursor_mob_get()/_map() for\nVMW_CURSOR_UPDATE_MOB -- the GB_ONLY path uses bo-\u003emap.virtual\ndirectly and would otherwise be silently downgraded to NONE on hosts\nwithout SVGA_CAP2_CURSOR_MOB (where vmw_cursor_mob_get() always\nreturns -EINVAL). Degrade the update to NONE if vmw_cursor_mob_get()\nor vmw_cursor_mob_map() fails so the update path does not run with a\nNULL backing MOB."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:04.652Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1eb4f796695be39e0b5c4383350033ced9ade703"
},
{
"url": "https://git.kernel.org/stable/c/9109b7935b9c058b75348610ef8437c52f9020e3"
},
{
"url": "https://git.kernel.org/stable/c/d5ed8749168ad13c0dbaa8300f68d854b6076966"
}
],
"title": "drm/vmwgfx: enforce cursor size limits for MOB cursors",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80701",
"datePublished": "2026-08-28T06:53:04.652Z",
"dateReserved": "2026-08-26T14:34:25.786Z",
"dateUpdated": "2026-08-28T06:53:04.652Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80700 (GCVE-0-2026-80700)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vmwgfx: validate external BO copy bounds for both stride paths
vmw_external_bo_copy() trusts caller-supplied offsets, strides, and
heights and operates on imported dma-buf vmaps:
- The equal-stride memcpy() bound was clamped after subtracting the
offsets from dst_size and src_size; an offset larger than the BO
size wraps the unsigned subtraction to a huge value and the
resulting memcpy() runs off the end of the vmap. dst_stride *
height is also a u32 multiplication that can overflow.
- The non-equal-stride row-by-row path had no bound at all. The
loop touches bytes through offset + (height - 1) * stride +
width_in_bytes, with only a WARN_ON(dst_stride < width_in_bytes),
and could likewise step past the end of either mapping.
The offsets and strides are derived from STDU/SOU plane state, so a
configured CRTC submitting a crafted atomic commit on an imported
framebuffer can reach this path.
Validate the exact row-copy endpoint against each BO's size up front
using check_mul_overflow() and check_add_overflow(). Use the bulk
memcpy() path only when width_in_bytes covers the whole stride;
otherwise copy one row at a time so partial-row updates near the bottom
of a framebuffer remain valid. Also reject zero strides and stride <
width_in_bytes, both of which the row-by-row path cannot represent
safely.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9a9716bbbf3dd6b6cbefba3abcc89af8b72631f4 Version: 50f1199250912568606b3778dc56646c10cb7b04 Version: 50f1199250912568606b3778dc56646c10cb7b04 Version: 50f1199250912568606b3778dc56646c10cb7b04 Version: 50f1199250912568606b3778dc56646c10cb7b04 Version: 5c12391ee1ab59cb2f3be3f1f5e6d0fc0c2dc854 Version: 6.6.49 ≤ Version: 6.10.8 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_blit.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4e0f669e2951b742239c6fe847fcc406fe78748d",
"status": "affected",
"version": "9a9716bbbf3dd6b6cbefba3abcc89af8b72631f4",
"versionType": "git"
},
{
"lessThan": "e7b25a6011781ebfdbc458552cae6d4156732771",
"status": "affected",
"version": "50f1199250912568606b3778dc56646c10cb7b04",
"versionType": "git"
},
{
"lessThan": "042ca38779554687fc32b66a28328e0d9a36c58f",
"status": "affected",
"version": "50f1199250912568606b3778dc56646c10cb7b04",
"versionType": "git"
},
{
"lessThan": "5e4a2d15637a906cbd9bc98e0bf969f5f713e344",
"status": "affected",
"version": "50f1199250912568606b3778dc56646c10cb7b04",
"versionType": "git"
},
{
"lessThan": "706c93c5813caabbb0d0a576c017d15aeec2c113",
"status": "affected",
"version": "50f1199250912568606b3778dc56646c10cb7b04",
"versionType": "git"
},
{
"status": "affected",
"version": "5c12391ee1ab59cb2f3be3f1f5e6d0fc0c2dc854",
"versionType": "git"
},
{
"lessThan": "6.6.151",
"status": "affected",
"version": "6.6.49",
"versionType": "semver"
},
{
"lessThan": "6.11",
"status": "affected",
"version": "6.10.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vmwgfx/vmwgfx_blit.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.11"
},
{
"lessThan": "6.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.6.151",
"versionStartIncluding": "6.6.49",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.10.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/vmwgfx: validate external BO copy bounds for both stride paths\n\nvmw_external_bo_copy() trusts caller-supplied offsets, strides, and\nheights and operates on imported dma-buf vmaps:\n\n - The equal-stride memcpy() bound was clamped after subtracting the\n offsets from dst_size and src_size; an offset larger than the BO\n size wraps the unsigned subtraction to a huge value and the\n resulting memcpy() runs off the end of the vmap. dst_stride *\n height is also a u32 multiplication that can overflow.\n - The non-equal-stride row-by-row path had no bound at all. The\n loop touches bytes through offset + (height - 1) * stride +\n width_in_bytes, with only a WARN_ON(dst_stride \u003c width_in_bytes),\n and could likewise step past the end of either mapping.\n\nThe offsets and strides are derived from STDU/SOU plane state, so a\nconfigured CRTC submitting a crafted atomic commit on an imported\nframebuffer can reach this path.\n\nValidate the exact row-copy endpoint against each BO\u0027s size up front\nusing check_mul_overflow() and check_add_overflow(). Use the bulk\nmemcpy() path only when width_in_bytes covers the whole stride;\notherwise copy one row at a time so partial-row updates near the bottom\nof a framebuffer remain valid. Also reject zero strides and stride \u003c\nwidth_in_bytes, both of which the row-by-row path cannot represent\nsafely."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The flaw is reached only via local DRM KMS ioctls on /dev/dri/card0: DRM_IOCTL_MODE_ATOMIC drives STDU/SOU plane updates that call vmw_bo_cpu_blit() -\u003e vmw_external_bo_copy(); vmwgfx is not exposed through any network, adjacent-radio, or physical-bus interface.\nAC:L - An attacker with DRM master fully controls atomic plane state, damage clips, pitches, and prime-imported framebuffer geometry that derive dst/src offsets, strides, and height; crafted values reliably trigger unsigned wrap or unbounded row copies without races or victim-dependent layout.\nPR:L - DRM_IOCTL_MODE_ATOMIC is gated by DRM_MASTER, not real root; on VMware guests and VDI desktops the logged-in session user holding master (typical video/render group access) can prime-import a dma-buf, configure a CRTC, and submit the malicious atomic commit.\nUI:N - Exploitation requires only the attacker opening the DRM device and issuing crafted atomic commits with an imported framebuffer; no actions by another user such as mounting filesystems or opening files are needed.\nS:U - Out-of-bounds memcpy corrupts adjacent guest-kernel memory around imported dma-buf vmaps and internal display BO mappings, enabling guest-kernel privilege escalation; impact stays within the guest kernel security domain and does not directly cross a VM/host or IOMMU boundary.\nC:H - The bug performs unchecked memcpy from attacker-influenced source mappings past buffer ends (equal-stride unsigned underflow and unbounded row-by-row copies), yielding an out-of-bounds kernel read primitive that can disclose adjacent heap/vmalloc data including kernel pointers.\nI:H - The same unchecked copies write past the end of destination vmaps, providing an out-of-bounds kernel write primitive that can corrupt adjacent objects and be developed into arbitrary memory modification or code execution.\nA:H - Large out-of-bounds memcpy operations can immediately corrupt critical kernel structures or touch unmapped pages, causing kernel oops/panic; the atomic-commit trigger can be repeated to deny availability after reboot."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:20.794Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4e0f669e2951b742239c6fe847fcc406fe78748d"
},
{
"url": "https://git.kernel.org/stable/c/e7b25a6011781ebfdbc458552cae6d4156732771"
},
{
"url": "https://git.kernel.org/stable/c/042ca38779554687fc32b66a28328e0d9a36c58f"
},
{
"url": "https://git.kernel.org/stable/c/5e4a2d15637a906cbd9bc98e0bf969f5f713e344"
},
{
"url": "https://git.kernel.org/stable/c/706c93c5813caabbb0d0a576c017d15aeec2c113"
}
],
"title": "drm/vmwgfx: validate external BO copy bounds for both stride paths",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80700",
"datePublished": "2026-08-28T06:53:04.050Z",
"dateReserved": "2026-08-26T14:34:25.786Z",
"dateUpdated": "2026-08-29T06:22:20.794Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80699 (GCVE-0-2026-80699)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: vgic: Avoid double-deactivate of IRQs in the nested context
In the nested state, the physical interrupt has already been
deactivated through the HW bit in the LR. The extra deactivation
would be harmless but can hit an errata case on AmpereOne, so
avoid it here.
On AmpereOne, deactivating a physical interrupt through
ICC_DIR_EL1 or ICC_EOIR1_EL1 (depending on EOImode) which is not
active, but is the highest priority pending interrupt causes the
cpu to lose the interrupt pending state and also prevents the
delivery of future interrupts.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"Documentation/arch/arm64/silicon-errata.rst",
"arch/arm64/kvm/vgic/vgic-v3.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f78f08b38a7f121c7d6b3e41002d9de7fd3c9189",
"status": "affected",
"version": "6dd333c8942b2e5bb5927af843b56ec2857db7c7",
"versionType": "git"
},
{
"lessThan": "8a570b19b4b16a8a3b5ffa2b332bd5613110b2d8",
"status": "affected",
"version": "6dd333c8942b2e5bb5927af843b56ec2857db7c7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"Documentation/arch/arm64/silicon-errata.rst",
"arch/arm64/kvm/vgic/vgic-v3.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.19"
},
{
"lessThan": "6.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "7.1.8",
"versionStartIncluding": "6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.19",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: vgic: Avoid double-deactivate of IRQs in the nested context\n\nIn the nested state, the physical interrupt has already been\ndeactivated through the HW bit in the LR. The extra deactivation\nwould be harmless but can hit an errata case on AmpereOne, so\navoid it here.\n\nOn AmpereOne, deactivating a physical interrupt through\nICC_DIR_EL1 or ICC_EOIR1_EL1 (depending on EOImode) which is not\nactive, but is the highest priority pending interrupt causes the\ncpu to lose the interrupt pending state and also prevents the\ndelivery of future interrupts."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:03.430Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f78f08b38a7f121c7d6b3e41002d9de7fd3c9189"
},
{
"url": "https://git.kernel.org/stable/c/8a570b19b4b16a8a3b5ffa2b332bd5613110b2d8"
}
],
"title": "KVM: arm64: vgic: Avoid double-deactivate of IRQs in the nested context",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80699",
"datePublished": "2026-08-28T06:53:03.430Z",
"dateReserved": "2026-08-26T14:34:25.786Z",
"dateUpdated": "2026-08-28T06:53:03.430Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80698 (GCVE-0-2026-80698)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 06:53
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dmaengine: idxd: fix double free of wq, engine, and group structs
The release callbacks for wq, engine, and group devices
(idxd_conf_wq_release, idxd_conf_engine_release,
idxd_conf_group_release) each call kfree() on the enclosing struct.
The setup error paths and cleanup functions also call kfree()
explicitly after put_device(), producing a double free whenever
put_device() drops the reference count to zero and fires the release.
In the setup functions, device_initialize() is called before
device_add(), so the reference count is exactly 1 at the error sites.
put_device() unconditionally fires the release, which frees the struct;
the subsequent explicit kfree() then operates on freed memory.
For idxd_setup_wqs(), the wq release callback also owns opcap_bmap
and wqcfg. The error unwind additionally freed those fields explicitly
before calling put_device(), causing further double frees on both.
Remove the redundant explicit kfree() calls from all setup error paths
and cleanup functions for wq, engine, and group structs, delegating
sole ownership of those allocations to the release callbacks.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7c5dd23e57c14cf7177b8a5e0fd08916e0c60005 Version: 7c5dd23e57c14cf7177b8a5e0fd08916e0c60005 Version: 394e179f51fce06d6bb8ca5af8fa53f33c718cf4 Version: b09ad63775f58a8de3e228f59fb9543bfd964c9c Version: 26c219e7522c494f7865a928c81ced84cc7db3ae Version: 35ea8721d9e6e74c6847cf4d6c27e883b00b0331 Version: e6f86fe368cdc14764833a6e8bb59f7a85a40e06 Version: 1c28fd5f94d8996f7dd3805bd6a16ed46a5d0886 Version: 5.11.22 ≤ Version: 5.12.5 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/dma/idxd/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c93a9f652b7373ac8ee5bfcc18a9af76959b6c6c",
"status": "affected",
"version": "7c5dd23e57c14cf7177b8a5e0fd08916e0c60005",
"versionType": "git"
},
{
"lessThan": "ec2d428b2e32dd157de8f86a86dd85c5b2c8f45c",
"status": "affected",
"version": "7c5dd23e57c14cf7177b8a5e0fd08916e0c60005",
"versionType": "git"
},
{
"status": "affected",
"version": "394e179f51fce06d6bb8ca5af8fa53f33c718cf4",
"versionType": "git"
},
{
"status": "affected",
"version": "b09ad63775f58a8de3e228f59fb9543bfd964c9c",
"versionType": "git"
},
{
"status": "affected",
"version": "26c219e7522c494f7865a928c81ced84cc7db3ae",
"versionType": "git"
},
{
"status": "affected",
"version": "35ea8721d9e6e74c6847cf4d6c27e883b00b0331",
"versionType": "git"
},
{
"status": "affected",
"version": "e6f86fe368cdc14764833a6e8bb59f7a85a40e06",
"versionType": "git"
},
{
"status": "affected",
"version": "1c28fd5f94d8996f7dd3805bd6a16ed46a5d0886",
"versionType": "git"
},
{
"lessThan": "5.12",
"status": "affected",
"version": "5.11.22",
"versionType": "semver"
},
{
"lessThan": "5.13",
"status": "affected",
"version": "5.12.5",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/dma/idxd/init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.13"
},
{
"lessThan": "5.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "7.1.8",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.11.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.12.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.11.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.12.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.11.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.12.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: idxd: fix double free of wq, engine, and group structs\n\nThe release callbacks for wq, engine, and group devices\n(idxd_conf_wq_release, idxd_conf_engine_release,\nidxd_conf_group_release) each call kfree() on the enclosing struct.\nThe setup error paths and cleanup functions also call kfree()\nexplicitly after put_device(), producing a double free whenever\nput_device() drops the reference count to zero and fires the release.\n\nIn the setup functions, device_initialize() is called before\ndevice_add(), so the reference count is exactly 1 at the error sites.\nput_device() unconditionally fires the release, which frees the struct;\nthe subsequent explicit kfree() then operates on freed memory.\n\nFor idxd_setup_wqs(), the wq release callback also owns opcap_bmap\nand wqcfg. The error unwind additionally freed those fields explicitly\nbefore calling put_device(), causing further double frees on both.\n\nRemove the redundant explicit kfree() calls from all setup error paths\nand cleanup functions for wq, engine, and group structs, delegating\nsole ownership of those allocations to the release callbacks."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T06:53:02.829Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c93a9f652b7373ac8ee5bfcc18a9af76959b6c6c"
},
{
"url": "https://git.kernel.org/stable/c/ec2d428b2e32dd157de8f86a86dd85c5b2c8f45c"
}
],
"title": "dmaengine: idxd: fix double free of wq, engine, and group structs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80698",
"datePublished": "2026-08-28T06:53:02.829Z",
"dateReserved": "2026-08-26T14:34:25.786Z",
"dateUpdated": "2026-08-28T06:53:02.829Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80697 (GCVE-0-2026-80697)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-28 12:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
erofs: ensure valid f_path for page cache sharing
Previously, backing files for page cache sharing were set up with
f_path left as NULL (only f_inode was valid). It worked, but a recent
mincore fix relies on f_path.mnt and crashes (found by "erofs/028" on
7.2-rc4):
BUG: kernel NULL pointer dereference, address: 0000000000000018
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: Oops: 0000 [#1] SMP PTI
CPU: 3 UID: 0 PID: 675528 Comm: fincore Not tainted 7.2.0-rc4-00002-g[]-dirty #1 PREEMPT(lazy)
Hardware name: Red Hat KVM, BIOS 1.16.0-4.al8 04/01/2014
RIP: 0010:__do_sys_mincore+0xc0/0x2c0
...
Specify valid paths using valid disconnected dentries together with
erofs_ishare_mnt instead of leaving f_path empty, so they are more
like real backing files in a pseudo filesystem and standard
backing_file_open() can be used directly.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/erofs/Kconfig",
"fs/erofs/internal.h",
"fs/erofs/ishare.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3879657c4ffd81b9a42cf575fc6cb60201032587",
"status": "affected",
"version": "5ef3208e3be50aa08b4e7a2832f34e16d42c08b3",
"versionType": "git"
},
{
"lessThan": "96b2dbbe58a1ea5df8d29c2fe24b5f04715f4443",
"status": "affected",
"version": "5ef3208e3be50aa08b4e7a2832f34e16d42c08b3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/erofs/Kconfig",
"fs/erofs/internal.h",
"fs/erofs/ishare.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.0"
},
{
"lessThan": "7.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "7.1.8",
"versionStartIncluding": "7.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "7.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nerofs: ensure valid f_path for page cache sharing\n\nPreviously, backing files for page cache sharing were set up with\nf_path left as NULL (only f_inode was valid). It worked, but a recent\nmincore fix relies on f_path.mnt and crashes (found by \"erofs/028\" on\n7.2-rc4):\n\n BUG: kernel NULL pointer dereference, address: 0000000000000018\n #PF: supervisor read access in kernel mode\n #PF: error_code(0x0000) - not-present page\n PGD 0 P4D 0\n Oops: Oops: 0000 [#1] SMP PTI\n CPU: 3 UID: 0 PID: 675528 Comm: fincore Not tainted 7.2.0-rc4-00002-g[]-dirty #1 PREEMPT(lazy)\n Hardware name: Red Hat KVM, BIOS 1.16.0-4.al8 04/01/2014\n RIP: 0010:__do_sys_mincore+0xc0/0x2c0\n ...\n\nSpecify valid paths using valid disconnected dentries together with\nerofs_ishare_mnt instead of leaving f_path empty, so they are more\nlike real backing files in a pseudo filesystem and standard\nbacking_file_open() can be used directly."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-28T12:08:17.218Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3879657c4ffd81b9a42cf575fc6cb60201032587"
},
{
"url": "https://git.kernel.org/stable/c/96b2dbbe58a1ea5df8d29c2fe24b5f04715f4443"
}
],
"title": "erofs: ensure valid f_path for page cache sharing",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80697",
"datePublished": "2026-08-28T06:53:02.236Z",
"dateReserved": "2026-08-26T14:34:25.786Z",
"dateUpdated": "2026-08-28T12:08:17.218Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80696 (GCVE-0-2026-80696)
Vulnerability from cvelistv5
Published
2026-08-28 06:53
Modified
2026-08-29 06:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
hwmon: (ltc4282) Fix reading the minimum alarm voltage
Coverity reports an out-of-bounds access when reading the minimum alarm
voltage for the VGPIO channel. Add the missing return statement to fix
the problem.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/ltc4282.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "338d655fe09b95a88788c6ac8b1651ca8db9ae51",
"status": "affected",
"version": "cbc29538dbf7d7400f1ffc5dd5713e6a551463a0",
"versionType": "git"
},
{
"lessThan": "08aee6d45eefc9e0b94c21bd442f47b21d64fa2c",
"status": "affected",
"version": "cbc29538dbf7d7400f1ffc5dd5713e6a551463a0",
"versionType": "git"
},
{
"lessThan": "a0668ac20feaa3fff9e0c0548556368dbbd2d439",
"status": "affected",
"version": "cbc29538dbf7d7400f1ffc5dd5713e6a551463a0",
"versionType": "git"
},
{
"lessThan": "00feb1cce93dab948a299b69753d99c681d45a0b",
"status": "affected",
"version": "cbc29538dbf7d7400f1ffc5dd5713e6a551463a0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hwmon/ltc4282.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.9"
},
{
"lessThan": "6.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "6.12.103",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (ltc4282) Fix reading the minimum alarm voltage\n\nCoverity reports an out-of-bounds access when reading the minimum alarm\nvoltage for the VGPIO channel. Add the missing return statement to fix\nthe problem."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The bug is reached only by a local read(2) on /sys/class/hwmon/hwmonN/in2_min_alarm (sysfs -\u003e hwmon_attr_show -\u003e ltc4282_read -\u003e ltc4282_read_in); the LTC4282 I2C hwmon driver has no network, wireless, or direct physical-bus attack surface.\nAC:L - On systems with an LTC4282 bound, any read of in2_min_alarm deterministically executes the missing-return fallthrough and out-of-bounds in0_1_cache[2].en access; the attacker fully controls triggering with no race or conditions outside their control.\nPR:L - in2_min_alarm is exposed as mode 0444 with no capability checks beyond standard sysfs permissions, so any unprivileged local user on a host with LTC4282 hardware can invoke the vulnerable read path without init-namespace root or user-namespace privileges.\nUI:N - Exploitation requires only the attacker (or attacker-controlled monitoring software) to read the hwmon sysfs attribute; no separate victim action such as plugging hardware, mounting filesystems, or approving prompts is needed.\nS:U - The out-of-bounds read and conditional hardware alarm-bit clearing remain within the host kernel/driver context managing the local LTC4282; they do not cross VM, container, IOMMU, or other changed security-authority boundaries.\nC:H - The fallthrough indexes in0_1_cache[2] past the two-element array, performing an out-of-bounds read of adjacent ltc4282_state memory (energy_en/padding) that steers control flow and can return incorrect in2_min_alarm data to userspace.\nI:H - When the out-of-bounds .en byte is non-zero, the fallthrough calls __ltc4282_read_alarm() with VSOURCE_ALARM_L_MASK, clearing the VSOURCE undervoltage alarm bit on the live LTC4282 hot-swap controller and corrupting safety-critical power-rail monitoring on datacenter/telecom racks.\nA:H - Clearing VSOURCE undervoltage alarms on an LTC4282 controlling live backplane/linecard hot-swap power can mask critical rail faults, enabling undetected power events and sustained rack or linecard outages on affected server and industrial deployments."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-29T06:22:19.564Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/338d655fe09b95a88788c6ac8b1651ca8db9ae51"
},
{
"url": "https://git.kernel.org/stable/c/08aee6d45eefc9e0b94c21bd442f47b21d64fa2c"
},
{
"url": "https://git.kernel.org/stable/c/a0668ac20feaa3fff9e0c0548556368dbbd2d439"
},
{
"url": "https://git.kernel.org/stable/c/00feb1cce93dab948a299b69753d99c681d45a0b"
}
],
"title": "hwmon: (ltc4282) Fix reading the minimum alarm voltage",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80696",
"datePublished": "2026-08-28T06:53:01.632Z",
"dateReserved": "2026-08-26T14:34:25.785Z",
"dateUpdated": "2026-08-29T06:22:19.564Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}