net: remove CAP_SYS_RAWIO zero-padding in dev_validate_header (Linux Linux)

CVE-2026-80731
HIGH 7.8

At a glance

Source
NVD
EPSS
EPSS 0.14 % · percentile 3 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Received

Description

In the Linux kernel, the following vulnerability has been resolved: net: remove CAP_SYS_RAWIO zero-padding in dev_validate_header dev_validate_header() reads dev->hard_header_len directly when zero-padding short link layer headers for CAP_SYS_RAWIO holders: if (capable(CAP_SYS_RAWIO)) { memset(ll_header + len, 0, dev->hard_header_len - len); return true; } Packet send paths call dev_validate_header() on skbs whose headroom was allocated from an earlier hard_header_len read. If the device is reconfigured so that dev->hard_header_len increases before validation, the memset writes past the reserved buffer, an out-of-bounds write. This out-of-bounds write is masked in some SOCK_RAW paths today because the same concurrent increase can first make skb_push() exceed the reserved headroom and trigger skb_under_panic(). Remove the zero-padding branch before making those hard_header_len reads consistent, so the snapshot fixes do not turn a loud panic into a silent overwrite. This path is only reached for variable length L2 protocols, where len < hard_header_len but len >= min_header_len. No remaining in-tree variable length L2 protocol implements header_ops->validate, and the CAP_SYS_RAWIO bypass that zero-pads and accepts short headers has no real value beyond allowing testing of intentionally malformed input. Drop the CAP_SYS_RAWIO branch. The remaining reads of dev->hard_header_len in dev_validate_header() are comparisons only and have no memory safety impact.

References

Scores

VersionScoreVectorScored by
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)

European references

CERT-FR advisories

Affected products

ProductVersions
Linux · Linuxaffected b5518429e70cd783b8ca52335456172c1a0589f6 < 53fd7f912c0877647d6a1e1877f5ea8535ee0b4a ; affected 2793a23aacbd754dbbb5cb75093deb7e4103bace < fa6d98dd925e72fc028b26a0cbbff9d2f0601ff6 ; affected 2793a23aacbd754dbbb5cb75093deb7e4103bace < 8fc9816404166a90ed8d544dc52482fafffb6d9f ; affected 2793a23aacbd754dbbb5cb75093deb7e4103bace < b0f92a5731dc82556a9ae005cc35f71ab136307b ; affected 2793a23aacbd754dbbb5cb75093deb7e4103bace < 99df6b7a713f96eda206680d100b76e15f9d9b69 ; affected 2793a23aacbd754dbbb5cb75093deb7e4103bace < 74e035f07f53feca09e2352e77fccb09cad5e208
Linux · Linuxaffected 4.6 ; unaffected 0 < 4.6 ; unaffected 3.2.81 ≤ 3.2.* ; unaffected 5.10.265 ≤ 5.10.* ; unaffected 5.15.216 ≤ 5.15.* ; unaffected 6.1.183 ≤ 6.1.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD