CVE-2026-74582 packet: use consistent hard_header_len in non-ring send paths
A race condition in the Linux kernel packet socket implementation allows out-of-bounds writes, potentially leading to code execution or privilege escalation.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-74582?
CVE-2026-74582 is a high-severity vulnerability in Linux, published on 21 Aug 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
packet: use consistent hard_header_len in non-ring send paths
packet_snd() reads dev->hard_header_len multiple times while allocating and constructing an skb. Device reconfiguration can change this value concurrently, for example through bonding device type changes.
For SOCK_RAW, packet_snd() can save a larger value in reserve and later allocate headroom using a smaller value. Moving skb->data back by reserve then places it before skb->head, and the following copy from userspace can attempt an out-of-bounds write.
packet_sendmsg_spkt() has the same issue because it calculates its reservation and header offset from separate reads before dropping the RCU read lock to allocate the skb.
Add LL_RESERVED_SPACE_EX() for callers that already saved a header length. Read hard_header_len once in packet_snd() and use it for allocation and construction. In packet_sendmsg_spkt(), preserve the allocation-time value through the device lookup retry.
The separate SOCK_DGRAM consistency problem between hard_header_len and header_ops->create is not addressed here.
Which versions are affected by CVE-2026-74582?
Linux distribution packages (40)
bpftool Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
bpftool-debuginfo Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-abi-stablelists Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-core Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-core Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-debuginfo Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-devel Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-modules Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-modules-extra Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debuginfo Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debuginfo-common-ppc64le Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debuginfo-common-x86_64 Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-devel Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-doc Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-modules Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-modules-extra Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-tools Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-tools-debuginfo Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-tools-libs Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
perf Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
perf-debuginfo Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
python3-perf Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
python3-perf-debuginfo Red Hat:rhel_e4s:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
bpftool Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
bpftool-debuginfo Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-abi-stablelists Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-core Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-core Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-debuginfo Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-devel Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-modules Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debug-modules-extra Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debuginfo Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-debuginfo-common-x86_64 Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-devel Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
kernel-doc Red Hat:rhel_tus:8.8::baseos | All versions | 0:4.18.0-477.165.1.el8_8 |
How do I fix CVE-2026-74582?
Apply the vendor's patch.
Is CVE-2026-74582 being exploited?
There is no known exploitation of CVE-2026-74582 in the wild and no public exploit code.
Sources
Also known as AZL-96995, BELL-CVE-2026-74582, DEBIAN-CVE-2026-74582, GHSA-6g47-hqw2-hv2r, RHSA-2026:63537, UBUNTU-CVE-2026-74582.