In the Linux kernel, the following vulnerability has been resolved:
bpf: fix BPF_PROG_QUERY OOB write and cgroup backward compat
BPF_PROG_QUERY writes back the 'query.revision' field unconditionally to userspace. If userspace passes a smaller 'bpf_attr' structure (e.g. 40 bytes, which was the layout before the addition of 'query.revision'), the kernel performs an out-of-bounds write.
Fix this by propagating the user-provided attribute size 'uattr_size' down to the cgroup query handlers, and conditionally skipping writing the revision field to userspace when the provided buffer size is insufficient.
query.revision in bpf_mprog_query is structurally identical to the cgroup case: a late tail field, written unconditionally.
But the backward-compat hazard is not the same.
The min-historical-size test is per command, and bpf_mprog_query only serves attach types that were born with revision in the struct:
- tcx_prog_query -> BPF_TCX_INGRESS/EGRESS - netkit_prog_query -> BPF_NETKIT_PRIMARY/PEER
tcx, netkit, the revision field, and bpf_mprog_query itself all landed in the same v6.6 merge window (053c8e1f235d added the mprog query API + revision; tcx in e420bed02507, netkit in 35dfaad7188c). There has never been a tcx/netkit BPF_PROG_QUERY userspace that doesn't know about revision. So for these commands the minimum legitimate struct already covers offset 56-64 — no old binary can be broken here.
Contrast with cgroup: BPF_PROG_QUERY on cgroup attach types shipped in 2017; revision write-back was bolted on years later (120933984460). That path has a real population of pre-revision callers.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Ubuntu | — | Upgrade linux-image-oem-7.0Upgrade linux-image-7.0.0-1008-gke-64kUpgrade linux-image-azure-fdeUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-generic-64k-7.0Upgrade linux-image-azure-7.0Upgrade linux-image-7.0.0-38-genericUpgrade linux-image-oem-26.04aUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-7.0.0-1014-awsUpgrade linux-image-generic-7.0Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-azureUpgrade linux-image-oem-26.04Upgrade linux-image-realtime-64kUpgrade linux-image-realtimeUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-gke-64k-7.0Upgrade linux-image-gcpUpgrade linux-image-7.0.0-38-generic-64kUpgrade linux-image-gke-64kUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-oracle-64kUpgrade linux-image-awsUpgrade linux-image-gcp-64kUpgrade linux-image-realtime-hwe-26.04Upgrade linux-image-gkeUpgrade linux-image-7.0.0-1014-gcpUpgrade linux-image-gke-7.0Upgrade linux-image-7.0.0-1015-oemUpgrade linux-image-aws-64kUpgrade linux-image-7.0.0-1013-oracle-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracle-64k-7.0Upgrade linux-image-7.0.0-1015-ibmUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-7.0.0-38-realtime-64kUpgrade linux-image-7.0.0-1014-gcp-64kUpgrade linux-image-generic-64kUpgrade linux-image-azure-lts-26.04Upgrade linux-image-7.0.0-38-realtimeUpgrade linux-image-virtual-7.0Upgrade linux-image-azure-fde-7.0Upgrade linux-image-virtual-hwe-26.04Upgrade linux-image-ibm-7.0Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-realtime-7.0Upgrade linux-image-7.0.0-1016-azure-fdeUpgrade linux-image-virtualUpgrade linux-image-oracle-7.0Upgrade linux-image-oracleUpgrade linux-image-aws-64k-7.0Upgrade linux-image-7.0.0-1017-azureUpgrade linux-image-7.0.0-1013-oracleUpgrade linux-image-gcp-7.0Upgrade linux-image-gke-hwe-26.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-7.0.0-1014-aws-64kUpgrade linux-image-genericUpgrade linux-image-azure-fde-lts-26.04Upgrade linux-image-aws-7.0Upgrade linux-image-7.0.0-1008-gkeUpgrade linux-image-ibm | Oct 7, 2026 | Oct 6, 2026 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub