CVE-2026-74582

packet: use consistent hard_header_len in non-ring send paths

State
Published
Severity
7.8 High
Published
Aug 21, 2026
Updated
Oct 16, 2026
Reserved
Aug 15, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • b84bbaf7a6c8cca24f8acf25a2c8e46913a947ba to before bcd4df60ac9481b1ceffdfe5ec38fe51dcaae812Affected
  • b84bbaf7a6c8cca24f8acf25a2c8e46913a947ba to before 78a47127e33c340bc6d38dcc4552a094b4f5cc77Affected
  • b84bbaf7a6c8cca24f8acf25a2c8e46913a947ba to before 142e287b3a25cfe909215177c23243e7fc5ae2b1Affected
  • b84bbaf7a6c8cca24f8acf25a2c8e46913a947ba to before 91f041451f967cd87ed722a8f43c0b767a64f1a0Affected
  • b84bbaf7a6c8cca24f8acf25a2c8e46913a947ba to before 9052756290962ffb9a661bcf319e92dedaaedfedAffected
  • b84bbaf7a6c8cca24f8acf25a2c8e46913a947ba to before 5bb10753d428aadfc356a2bfe9acea09c82a62ecAffected
  • b84bbaf7a6c8cca24f8acf25a2c8e46913a947ba to before b06b6fce6d7deaf7238e09b48ce3b1125ff41acdAffected
  • b84bbaf7a6c8cca24f8acf25a2c8e46913a947ba to before 03390aa32e669cc4ecd7d34108e2e1afc13d689dAffected
  • d9fb8cc230b2a4757e9fe4f81468f81212d4deaaAffected
  • 6190cce26e40bf71c4d375b21eea74bb07b6a0f3Affected
  • 01a658c1b9d4b5393c38d5a92d9112ab1425382aAffected
  • 8809ae6747e760e6f1d2453ceb08c9bcc4939766Affected
  • 4.4.133 to before 4.5Affected
  • 4.9.103 to before 4.10Affected
  • 4.14.44 to before 4.15Affected
  • 4.16.12 to before 4.17Affected
LinuxLinux
  • 4.17Affected
  • before 4.17Not affected
  • 5.10.267 through 5.10.*Not affected
  • 5.15.218 through 5.15.*Not affected
  • 6.1.185 through 6.1.*Not affected
  • 6.6.152 through 6.6.*Not affected
  • 6.12.104 through 6.12.*Not affected
  • 6.18.45 through 6.18.*Not affected
  • 7.1.9 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.