CVE-2026-53223

net: guard timestamp cmsgs to real error queue skbs

State
Published
Severity
7.1 High
Published
Jun 25, 2026
Updated
Oct 19, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

net: guard timestamp cmsgs to real error queue skbs

skb_is_err_queue() treats PACKET_OUTGOING as the sole marker for an skb from sk_error_queue. That assumption is not true for AF_PACKET sockets: outgoing packet taps are also delivered to packet sockets with skb->pkt_type == PACKET_OUTGOING, but their skb->cb is owned by AF_PACKET instead of struct sock_exterr_skb.

If such an skb is received with timestamping enabled, the generic timestamp cmsg path can read AF_PACKET control-buffer state as sock_exterr_skb::opt_stats. With SO_RXQ_OVFL enabled, the packet drop counter overlaps opt_stats. An odd drop count makes the path emit SCM_TIMESTAMPING_OPT_STATS with skb->len and skb->data. For non-linear skbs this copies past the linear head and can trigger hardened usercopy or disclose adjacent heap contents.

Keep skb_is_err_queue() local to net/socket.c, but make it verify that the PACKET_OUTGOING marker is paired with the sock_rmem_free destructor installed by sock_queue_err_skb(). AF_PACKET receive skbs use normal receive ownership and no longer pass as error-queue skbs, while legitimate sk_error_queue entries keep the PACKET_OUTGOING marker and sock_rmem_free ownership.

Scores

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

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 8605330aac5a5785630aec8f64378a54891937cc to before 24a0d548d3a765cd4558224e4f8e06e14cba26e3Affected
  • 8605330aac5a5785630aec8f64378a54891937cc to before 71ff5cdd5da61d0438e902aa0fd68c28bc901abeAffected
  • 8605330aac5a5785630aec8f64378a54891937cc to before ad9a0374ee6d11048e1f74cd5180bad58b9848b4Affected
  • 8605330aac5a5785630aec8f64378a54891937cc to before b903e9b5629ec8dd6db92174070045bf81ad7060Affected
  • 8605330aac5a5785630aec8f64378a54891937cc to before e0665b2a8e90bb08bd205062c75662b502d31797Affected
  • 8605330aac5a5785630aec8f64378a54891937cc to before 3dde4fb941fa5649ab809f6cd3e20e0c424a4e31Affected
  • 8605330aac5a5785630aec8f64378a54891937cc to before eb51a9ad3ceb01bc6c0fb608dbc856e03ee6f24aAffected
  • 8605330aac5a5785630aec8f64378a54891937cc to before 1ee90b77b727df903033db873c75caac5c27ec98Affected
  • cdaf15b43bd31003220cb080bcbbd57787a2fca9Affected
  • 4.10.14 to before 4.11Affected
LinuxLinux
  • 4.11Affected
  • before 4.11Not affected
  • 5.10.259 through 5.10.*Not affected
  • 5.15.210 through 5.15.*Not affected
  • 6.1.176 through 6.1.*Not affected
  • 6.6.143 through 6.6.*Not affected
  • 6.12.94 through 6.12.*Not affected
  • 6.18.36 through 6.18.*Not affected
  • 7.0.13 through 7.0.*Not affected
  • 7.1 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.