{"id":29277,"date":"2026-09-25T20:32:18","date_gmt":"2026-09-25T12:32:18","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98123"},"modified":"2026-09-25T20:32:18","modified_gmt":"2026-09-25T12:32:18","slug":"cve-2026-98123","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98123","title":{"rendered":"CVE-2026-98123 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: fix soft lockup"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>sctp: fix soft lockup from unpadded ASCONF-ACK parameter iteration<\/p>\n<p>sctp_verify_asconf() walks ASCONF-ACK parameters with<br \/>\nsctp_walk_params(), which advances by SCTP_PAD4(length), while the<br \/>\nconsumer sctp_get_asconf_response() iterates the same parameters<br \/>\nadvancing by the raw length, without padding. A single odd-length<br \/>\nparameter desynchronises the two walks and makes the consumer<br \/>\ninterpret attacker-controlled bytes at a misaligned offset.<\/p>\n<p>When those bytes yield a length of zero, the while loop over<br \/>\nasconf_ack_len makes no progress, spinning forever in softirq<br \/>\ncontext, and the watchdog reports a soft lockup. All reads stay<br \/>\nwithin the received skb, so the lockup is a pure remote denial of<br \/>\nservice. A remote peer can trigger it with a crafted ASCONF-ACK on<br \/>\nan ADD-IP enabled association with an outstanding ASCONF (RFC 5061<br \/>\nsection 4.1.2 requires the chunk to be authenticated, but the<br \/>\npredefined empty key id 0 allows the peer to compute the same<br \/>\nassociation HMAC from publicly exchanged parameters, so the gate<br \/>\ndoes not help).<\/p>\n<p>The SCTP_PARAM_ERR_CAUSE case of sctp_verify_asconf() also performs<br \/>\nno length check, letting a parameter without a complete error<br \/>\nheader reach the consumer, which reads errhdr.cause past the end of<br \/>\nthe parameter, an out-of-bounds read.<\/p>\n<p>Reject SCTP_PARAM_ERR_CAUSE parameters shorter than<br \/>\nsizeof(struct sctp_addip_param) + sizeof(struct sctp_errhdr) at the<br \/>\nverifier, and advance the consumer iterator with the same padding<br \/>\nrule as the verifier to keep the two walks in lockstep. The verifier<br \/>\nchange guarantees a complete error header in every ERR_CAUSE<br \/>\nparameter the consumer can see, so the consumer&#8217;s asconf_ack_len<br \/>\ncheck is dropped and it returns err_param-&gt;cause directly. The<br \/>\nconsumer padding fix is still required because odd lengths remain<br \/>\nvalid for SCTP_PARAM_ERR_CAUSE per RFC 5061.<\/p>\n<p>The issue was found by ZeroHive, a vulnerability hunting agent at<br \/>\nTencent Yunding Lab.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>sctp: fix soft lockup from unpadded ASCONF-ACK parameter iteration<\/p>\n<p>sctp_verify_asconf() walks ASCONF-ACK parameters with<br \/>\nsctp_walk<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29277","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=29277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}