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

sctp: fix soft lockup from unpadded ASCONF-ACK parameter iteration

sctp_verify_asconf() walks ASCONF-ACK parameters with
sctp_walk_params(), which advances by SCTP_PAD4(length), while the
consumer sctp_get_asconf_response() iterates the same parameters
advancing by the raw length, without padding. A single odd-length
parameter desynchronises the two walks and makes the consumer
interpret attacker-controlled bytes at a misaligned offset.

When those bytes yield a length of zero, the while loop over
asconf_ack_len makes no progress, spinning forever in softirq
context, and the watchdog reports a soft lockup. All reads stay
within the received skb, so the lockup is a pure remote denial of
service. A remote peer can trigger it with a crafted ASCONF-ACK on
an ADD-IP enabled association with an outstanding ASCONF (RFC 5061
section 4.1.2 requires the chunk to be authenticated, but the
predefined empty key id 0 allows the peer to compute the same
association HMAC from publicly exchanged parameters, so the gate
does not help).

The SCTP_PARAM_ERR_CAUSE case of sctp_verify_asconf() also performs
no length check, letting a parameter without a complete error
header reach the consumer, which reads errhdr.cause past the end of
the parameter, an out-of-bounds read.

Reject SCTP_PARAM_ERR_CAUSE parameters shorter than
sizeof(struct sctp_addip_param) + sizeof(struct sctp_errhdr) at the
verifier, and advance the consumer iterator with the same padding
rule as the verifier to keep the two walks in lockstep. The verifier
change guarantees a complete error header in every ERR_CAUSE
parameter the consumer can see, so the consumer's asconf_ack_len
check is dropped and it returns err_param->cause directly. The
consumer padding fix is still required because odd lengths remain
valid for SCTP_PARAM_ERR_CAUSE per RFC 5061.

The issue was found by ZeroHive, a vulnerability hunting agent at
Tencent Yunding Lab.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

This vulnerability involves a mismatch in how the Linux kernel parses ASCONF‑ACK parameters in the SCTP protocol. The verifier advances with a padded length while the consumer uses the raw length, leading to misalignment when an odd‑length parameter is present. An attacker can send a crafted ASCONF‑ACK chunk that desynchronizes the walks, causing the consumer to read zero‑length values and loop indefinitely in softirq context. The result is a kernel soft lockup, providing a remote denial‑of‑service condition. Additionally, the verifier performs no length check for SCTP_PARAM_ERR_CAUSE parameters, allowing an out‑of‑bounds read of the error header.

Affected Systems

The flaw resides in the Linux kernel, affecting all builds that include the SCTP subsystem before the patch was introduced. No specific version numbers are enumerated in the advisory, so any kernel where SCTP is enabled and the bug remains present is vulnerable. The CVE data identifies the affected system as the Linux kernel OS via the generic CPE string.

Risk and Exploitability

The attack can be carried out remotely from a peer that initiates a SCTP association with the ADD‑IP feature and possessing an outstanding ASCONF transaction. Because the attacker can compute the required HMAC using the public key id 0, the authentication gate does not provide protection. No CVSS score is published and EPSS is not available, but the remote nature and the potential to cause a soft lockup suggest a high severity. The vulnerability is not listed in CISA’s KEV catalogue at the time of this analysis.

Generated by OpenCVE AI on September 25, 2026 at 11:37 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel patch that corrects the SCTP parameter verification and consumer padding to bring the system to a fixed version.
  • If the patch cannot be applied immediately, disable the SCTP protocol or use firewall rules to block SCTP traffic on port 446 or the appropriate SCTP ports to stop malicious packets from reaching the kernel.
  • Continuously monitor kernel logs (e.g., dmesg, journalctl) for soft‑IRQ lockup warnings and verify that the kernel is not repeatedly reporting hard or soft lockups after the fix is applied.

Generated by OpenCVE AI on September 25, 2026 at 11:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 12:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1023
CWE-125

Fri, 25 Sep 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: sctp: fix soft lockup from unpadded ASCONF-ACK parameter iteration sctp_verify_asconf() walks ASCONF-ACK parameters with sctp_walk_params(), which advances by SCTP_PAD4(length), while the consumer sctp_get_asconf_response() iterates the same parameters advancing by the raw length, without padding. A single odd-length parameter desynchronises the two walks and makes the consumer interpret attacker-controlled bytes at a misaligned offset. When those bytes yield a length of zero, the while loop over asconf_ack_len makes no progress, spinning forever in softirq context, and the watchdog reports a soft lockup. All reads stay within the received skb, so the lockup is a pure remote denial of service. A remote peer can trigger it with a crafted ASCONF-ACK on an ADD-IP enabled association with an outstanding ASCONF (RFC 5061 section 4.1.2 requires the chunk to be authenticated, but the predefined empty key id 0 allows the peer to compute the same association HMAC from publicly exchanged parameters, so the gate does not help). The SCTP_PARAM_ERR_CAUSE case of sctp_verify_asconf() also performs no length check, letting a parameter without a complete error header reach the consumer, which reads errhdr.cause past the end of the parameter, an out-of-bounds read. Reject SCTP_PARAM_ERR_CAUSE parameters shorter than sizeof(struct sctp_addip_param) + sizeof(struct sctp_errhdr) at the verifier, and advance the consumer iterator with the same padding rule as the verifier to keep the two walks in lockstep. The verifier change guarantees a complete error header in every ERR_CAUSE parameter the consumer can see, so the consumer's asconf_ack_len check is dropped and it returns err_param->cause directly. The consumer padding fix is still required because odd lengths remain valid for SCTP_PARAM_ERR_CAUSE per RFC 5061. The issue was found by ZeroHive, a vulnerability hunting agent at Tencent Yunding Lab.
Title sctp: fix soft lockup from unpadded ASCONF-ACK parameter iteration
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T10:36:05.993Z

Reserved: 2026-09-25T10:25:14.318Z

Link: CVE-2026-98123

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:43.600

Modified: 2026-09-25T11:17:43.600

Link: CVE-2026-98123

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T11:45:19Z

Weaknesses
  • CWE-1023

    Incomplete Comparison with Missing Factors

  • CWE-125

    Out-of-bounds Read