{"api_version":"1","generated_at":"2026-06-26T11:05:17+00:00","cve":"CVE-2026-53223","urls":{"html":"https://cve.report/CVE-2026-53223","api":"https://cve.report/api/cve/CVE-2026-53223.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-53223","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-53223"},"summary":{"title":"net: guard timestamp cmsgs to real error queue skbs","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: guard timestamp cmsgs to real error queue skbs\n\nskb_is_err_queue() treats PACKET_OUTGOING as the sole marker for an skb\nfrom sk_error_queue. That assumption is not true for AF_PACKET sockets:\noutgoing packet taps are also delivered to packet sockets with\nskb->pkt_type == PACKET_OUTGOING, but their skb->cb is owned by AF_PACKET\ninstead of struct sock_exterr_skb.\n\nIf such an skb is received with timestamping enabled, the generic\ntimestamp cmsg path can read AF_PACKET control-buffer state as\nsock_exterr_skb::opt_stats. With SO_RXQ_OVFL enabled, the packet drop\ncounter overlaps opt_stats. An odd drop count makes the path emit\nSCM_TIMESTAMPING_OPT_STATS with skb->len and skb->data. For non-linear\nskbs this copies past the linear head and can trigger hardened usercopy or\ndisclose adjacent heap contents.\n\nKeep skb_is_err_queue() local to net/socket.c, but make it verify that\nthe PACKET_OUTGOING marker is paired with the sock_rmem_free destructor\ninstalled by sock_queue_err_skb(). AF_PACKET receive skbs use normal\nreceive ownership and no longer pass as error-queue skbs, while legitimate\nsk_error_queue entries keep the PACKET_OUTGOING marker and sock_rmem_free\nownership.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-06-25 09:16:40","updated_at":"2026-06-25 09:16:40"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/1ee90b77b727df903033db873c75caac5c27ec98","name":"https://git.kernel.org/stable/c/1ee90b77b727df903033db873c75caac5c27ec98","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e0665b2a8e90bb08bd205062c75662b502d31797","name":"https://git.kernel.org/stable/c/e0665b2a8e90bb08bd205062c75662b502d31797","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/3dde4fb941fa5649ab809f6cd3e20e0c424a4e31","name":"https://git.kernel.org/stable/c/3dde4fb941fa5649ab809f6cd3e20e0c424a4e31","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/24a0d548d3a765cd4558224e4f8e06e14cba26e3","name":"https://git.kernel.org/stable/c/24a0d548d3a765cd4558224e4f8e06e14cba26e3","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/eb51a9ad3ceb01bc6c0fb608dbc856e03ee6f24a","name":"https://git.kernel.org/stable/c/eb51a9ad3ceb01bc6c0fb608dbc856e03ee6f24a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/b903e9b5629ec8dd6db92174070045bf81ad7060","name":"https://git.kernel.org/stable/c/b903e9b5629ec8dd6db92174070045bf81ad7060","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/71ff5cdd5da61d0438e902aa0fd68c28bc901abe","name":"https://git.kernel.org/stable/c/71ff5cdd5da61d0438e902aa0fd68c28bc901abe","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ad9a0374ee6d11048e1f74cd5180bad58b9848b4","name":"https://git.kernel.org/stable/c/ad9a0374ee6d11048e1f74cd5180bad58b9848b4","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-53223","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53223","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8605330aac5a5785630aec8f64378a54891937cc 24a0d548d3a765cd4558224e4f8e06e14cba26e3 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8605330aac5a5785630aec8f64378a54891937cc 71ff5cdd5da61d0438e902aa0fd68c28bc901abe git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8605330aac5a5785630aec8f64378a54891937cc ad9a0374ee6d11048e1f74cd5180bad58b9848b4 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8605330aac5a5785630aec8f64378a54891937cc b903e9b5629ec8dd6db92174070045bf81ad7060 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8605330aac5a5785630aec8f64378a54891937cc e0665b2a8e90bb08bd205062c75662b502d31797 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8605330aac5a5785630aec8f64378a54891937cc 3dde4fb941fa5649ab809f6cd3e20e0c424a4e31 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8605330aac5a5785630aec8f64378a54891937cc eb51a9ad3ceb01bc6c0fb608dbc856e03ee6f24a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8605330aac5a5785630aec8f64378a54891937cc 1ee90b77b727df903033db873c75caac5c27ec98 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected cdaf15b43bd31003220cb080bcbbd57787a2fca9 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.10.14 4.11 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.11","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.11 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.259 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.210 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.176 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.143 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.94 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.36 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.13 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"53223","cve":"CVE-2026-53223","epss":"0.001840000","percentile":"0.081710000","score_date":"2026-06-25","updated_at":"2026-06-26 00:06:14"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["include/net/sock.h","net/core/skbuff.c","net/socket.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"24a0d548d3a765cd4558224e4f8e06e14cba26e3","status":"affected","version":"8605330aac5a5785630aec8f64378a54891937cc","versionType":"git"},{"lessThan":"71ff5cdd5da61d0438e902aa0fd68c28bc901abe","status":"affected","version":"8605330aac5a5785630aec8f64378a54891937cc","versionType":"git"},{"lessThan":"ad9a0374ee6d11048e1f74cd5180bad58b9848b4","status":"affected","version":"8605330aac5a5785630aec8f64378a54891937cc","versionType":"git"},{"lessThan":"b903e9b5629ec8dd6db92174070045bf81ad7060","status":"affected","version":"8605330aac5a5785630aec8f64378a54891937cc","versionType":"git"},{"lessThan":"e0665b2a8e90bb08bd205062c75662b502d31797","status":"affected","version":"8605330aac5a5785630aec8f64378a54891937cc","versionType":"git"},{"lessThan":"3dde4fb941fa5649ab809f6cd3e20e0c424a4e31","status":"affected","version":"8605330aac5a5785630aec8f64378a54891937cc","versionType":"git"},{"lessThan":"eb51a9ad3ceb01bc6c0fb608dbc856e03ee6f24a","status":"affected","version":"8605330aac5a5785630aec8f64378a54891937cc","versionType":"git"},{"lessThan":"1ee90b77b727df903033db873c75caac5c27ec98","status":"affected","version":"8605330aac5a5785630aec8f64378a54891937cc","versionType":"git"},{"status":"affected","version":"cdaf15b43bd31003220cb080bcbbd57787a2fca9","versionType":"git"},{"lessThan":"4.11","status":"affected","version":"4.10.14","versionType":"semver"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["include/net/sock.h","net/core/skbuff.c","net/socket.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.11"},{"lessThan":"4.11","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.259","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.210","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.176","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.143","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.94","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.36","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.13","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.259","versionStartIncluding":"4.11","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.210","versionStartIncluding":"4.11","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.176","versionStartIncluding":"4.11","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.143","versionStartIncluding":"4.11","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.94","versionStartIncluding":"4.11","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.36","versionStartIncluding":"4.11","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0.13","versionStartIncluding":"4.11","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1","versionStartIncluding":"4.11","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10.14","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: guard timestamp cmsgs to real error queue skbs\n\nskb_is_err_queue() treats PACKET_OUTGOING as the sole marker for an skb\nfrom sk_error_queue. That assumption is not true for AF_PACKET sockets:\noutgoing packet taps are also delivered to packet sockets with\nskb->pkt_type == PACKET_OUTGOING, but their skb->cb is owned by AF_PACKET\ninstead of struct sock_exterr_skb.\n\nIf such an skb is received with timestamping enabled, the generic\ntimestamp cmsg path can read AF_PACKET control-buffer state as\nsock_exterr_skb::opt_stats. With SO_RXQ_OVFL enabled, the packet drop\ncounter overlaps opt_stats. An odd drop count makes the path emit\nSCM_TIMESTAMPING_OPT_STATS with skb->len and skb->data. For non-linear\nskbs this copies past the linear head and can trigger hardened usercopy or\ndisclose adjacent heap contents.\n\nKeep skb_is_err_queue() local to net/socket.c, but make it verify that\nthe PACKET_OUTGOING marker is paired with the sock_rmem_free destructor\ninstalled by sock_queue_err_skb(). AF_PACKET receive skbs use normal\nreceive ownership and no longer pass as error-queue skbs, while legitimate\nsk_error_queue entries keep the PACKET_OUTGOING marker and sock_rmem_free\nownership."}],"providerMetadata":{"dateUpdated":"2026-06-25T08:39:24.588Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/24a0d548d3a765cd4558224e4f8e06e14cba26e3"},{"url":"https://git.kernel.org/stable/c/71ff5cdd5da61d0438e902aa0fd68c28bc901abe"},{"url":"https://git.kernel.org/stable/c/ad9a0374ee6d11048e1f74cd5180bad58b9848b4"},{"url":"https://git.kernel.org/stable/c/b903e9b5629ec8dd6db92174070045bf81ad7060"},{"url":"https://git.kernel.org/stable/c/e0665b2a8e90bb08bd205062c75662b502d31797"},{"url":"https://git.kernel.org/stable/c/3dde4fb941fa5649ab809f6cd3e20e0c424a4e31"},{"url":"https://git.kernel.org/stable/c/eb51a9ad3ceb01bc6c0fb608dbc856e03ee6f24a"},{"url":"https://git.kernel.org/stable/c/1ee90b77b727df903033db873c75caac5c27ec98"}],"title":"net: guard timestamp cmsgs to real error queue skbs","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-53223","datePublished":"2026-06-25T08:39:24.588Z","dateReserved":"2026-06-09T07:44:35.392Z","dateUpdated":"2026-06-25T08:39:24.588Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-06-25 09:16:40","lastModifiedDate":"2026-06-25 09:16:40","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"53223","Ordinal":"1","Title":"net: guard timestamp cmsgs to real error queue skbs","CVE":"CVE-2026-53223","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"53223","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: guard timestamp cmsgs to real error queue skbs\n\nskb_is_err_queue() treats PACKET_OUTGOING as the sole marker for an skb\nfrom sk_error_queue. That assumption is not true for AF_PACKET sockets:\noutgoing packet taps are also delivered to packet sockets with\nskb->pkt_type == PACKET_OUTGOING, but their skb->cb is owned by AF_PACKET\ninstead of struct sock_exterr_skb.\n\nIf such an skb is received with timestamping enabled, the generic\ntimestamp cmsg path can read AF_PACKET control-buffer state as\nsock_exterr_skb::opt_stats. With SO_RXQ_OVFL enabled, the packet drop\ncounter overlaps opt_stats. An odd drop count makes the path emit\nSCM_TIMESTAMPING_OPT_STATS with skb->len and skb->data. For non-linear\nskbs this copies past the linear head and can trigger hardened usercopy or\ndisclose adjacent heap contents.\n\nKeep skb_is_err_queue() local to net/socket.c, but make it verify that\nthe PACKET_OUTGOING marker is paired with the sock_rmem_free destructor\ninstalled by sock_queue_err_skb(). AF_PACKET receive skbs use normal\nreceive ownership and no longer pass as error-queue skbs, while legitimate\nsk_error_queue entries keep the PACKET_OUTGOING marker and sock_rmem_free\nownership.","Type":"Description","Title":"net: guard timestamp cmsgs to real error queue skbs"}]}}}