Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-98548— sctp: discard the rest of the packet on a stale-cookie error

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 Linux 内核中,以下漏洞已得到修复: sctp:在出现“过期 Cookie"错误时丢弃数据包的剩余部分 当关联(association)处于 状态,且对端从其非主地址之一发送一个捆绑了 的数据包时,处理该 分片会触发非致命的“过期 Cookie"重试路径 。该路径会排队执行 命令,同时保持关联存活。 函数会移除所有非主传输(transport),包括该数据包到达时所用的那个传输。然而,该传输仍被接收查找逻辑引用,并且通过 指针被数据包中的所有分片共享。 函数确实会将 从已移除的传输上重定向开,但紧接着,捆绑

AI Predicted 9.8 Difficulty: Easy

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< c0af3fd150fdc43821df3bb77e5ec74faf4dfc7a affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 854c053c71459f8db7ef07db9cfa4eec5f5206f2 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 965e21ea16acb394d5e5801998ca9b0adc669665 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 1cd246b214dc9acf4e2f11d58c035e1e672fe7d2 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< d68c9287b3ca0d6faadc61fbcb18d1a6b5493321 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< ec23855274a73906b02f0d124fefd9cb3c008b1d affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 6df536c5acbc0abd6f119d02e24f4a2ed97707f4 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 4498467a8af06cfa3d71cb04bd7c4170dec8f449 affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-98548

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
sctp: discard the rest of the packet on a stale-cookie error
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: sctp: discard the rest of the packet on a stale-cookie error When an association is in COOKIE-ECHOED state and the peer sends a bundled [ERROR(Stale Cookie)][DATA] packet from one of its non-primary addresses, processing the ERROR chunk takes the non-fatal stale-cookie retry path sctp_sf_do_5_2_6_stale(), which queues SCTP_CMD_DEL_NON_PRIMARY while keeping the association alive. sctp_cmd_del_non_primary() removes every non-primary transport - including the very transport this packet arrived on, which is still referenced by the receive lookup and shared by all chunks of the packet via chunk->transport. sctp_assoc_rm_peer() does redirect asoc->peer.last_data_from away from the removed transport, but right afterwards the bundled DATA chunk makes sctp_assoc_bh_rcv() re-register asoc->peer.last_data_from = chunk->transport unconditionally, undoing the redirection with the just-removed transport. Once the packet is done, the receive reference is dropped and the transport is RCU-freed, while the surviving association keeps the dangling last_data_from. A later FWD-TSN (or the delayed SACK timer) makes sctp_gen_sack() dereference it (->param_flags and friends), and sctp_make_sack()/sctp_outq_select_transport() may write to the freed object and link it into the live transport list. This is a use-after-free triggerable by any malicious SCTP peer (or a local unprivileged user acting as one) with no capabilities required: BUG: KASAN: slab-use-after-free in sctp_do_sm+0x498a/0x5660 Read of size 4 at addr ffff88800e1e356c by task poc/115 Call Trace: sctp_do_sm <- sctp_assoc_bh_rcv <- sctp_inq_push <- sctp_rcv <- ip_protocol_deliver_rcu <- ip_rcv Allocated: sctp_transport_new <- sctp_assoc_add_peer <- sctp_process_init (INIT-ACK processing) Freed: kfree <- sctp_transport_destroy_rcu <- rcu_core (call_rcu queued by sctp_transport_put at end of sctp_rcv) The buggy address is located 364 bytes inside of freed 1024-byte region [ffff88800e1e3400, ffff88800e1e3800), cache kmalloc-1k Note that commit 03a9d10ecf71 ("sctp: drop a chunk if its transport was removed") only covers the window between the receive lookup and the chunk processing (e.g. an ASCONF DEL-IP racing the socket backlog); here the transport is removed *while* the packet is being processed, by an earlier chunk of the same packet, so the drop in sctp_inq_push() does not reach this path. Verified with the bundled [ERROR(Stale Cookie)][DATA] + FWD-TSN reproducer: the KASAN report above still fires with that commit applied, and is gone with this patch on top. Fix it by discarding the rest of the packet on this path, as suggested by Xin. After the stale-cookie ERROR has sent the association back to COOKIE-WAIT and removed the non-primary transports, the remaining chunks of the packet can only run against the restarted handshake while referencing the removed arrival transport through chunk->transport: besides the last_data_from registration above, sctp_cmd_setup_t2() and the sctp_make_*() reply builders would also copy that pointer into association-lifetime state that sctp_assoc_rm_peer() has already sanitized. Let the peer retransmit them, in line with what sctp_inq_push() does for chunks whose transport was removed before processing.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ~ c0af3fd150fdc43821df3bb77e5ec74faf4dfc7a -
Linux Linux 2.6.12 -

II. Public POCs for CVE-2026-98548

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-98548

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-98548 (7)

Same Patch Batch · Linux · 2026-10-18 · 436 CVEs total

CVE-2026-98583 nfc: nfcmrvl: validate helper command length before pull
CVE-2026-98570 net: ipv6: keep room for the mac header in dst_dev_overhead()
CVE-2026-98571 net: stmmac: clear stale buf->page after recycling on skb build failure
CVE-2026-98572 bpf: Fix immediate JMP JEQ/JNE on MIPS32
CVE-2026-98573 net: skbuff: fix pull-bound underflow in skb_checksum_setup_ipv6()
CVE-2026-98574 net: bcmgenet: stop Tx NAPI before disabling the queues
CVE-2026-98575 nfc: pn533: fix OOB read in pn533_acr122_is_rx_frame_valid()
CVE-2026-98576 nfc: llcp: fix slab-out-of-bounds reads when logging service names
CVE-2026-98577 nfc: llcp: fix WKS SAP hijacking via prefix match in nfc_llcp_wks_sap()
CVE-2026-98578 nfc: st21nfca: validate ISO15693 inventory length
CVE-2026-98579 nfc: llcp: fix sdreq TLV list leak on parse/alloc/send failure
CVE-2026-98580 nfc: llcp: Fix race condition in accept_queue lifecycle
CVE-2026-98581 nfc: llcp: Fix list corruption / refcount desync in nfc_llcp_recv_dm()
CVE-2026-98582 nfc: st21nfca: validate received frame size
CVE-2026-98594 tg3: clean up PHYLIB resources on probe failure
CVE-2026-98591 bpf: Fix bounds check for skb-backed dynptrs
CVE-2026-98592 net: spacemit: clear TX descriptor on fragment mapping failure
CVE-2026-98593 s390/debug: Fix NULL pointer dereference in debug_info_copy()
CVE-2026-98590 bpf: Fix bpf_sock context code generation
CVE-2026-98595 udp: remove a disconnected socket from the 4-tuple hash table

Showing top 20 of 436 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-98548

No comments yet


Leave a comment