CVE-2026-23125

Source
https://cve.org/CVERecord?id=CVE-2026-23125
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-23125.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-23125
Downstream
Published
2026-02-14T15:09:54.756Z
Modified
2026-03-20T12:47:24.635092Z
Summary
sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT
Details

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

sctp: move SCTPCMDASSOCSHKEY right after SCTPCMDPEERINIT

A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:

================================================================== KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f] CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2 RIP: 0010:sctppacketbundleauth net/sctp/output.c:264 [inline] RIP: 0010:sctppacketappendchunk+0xb36/0x1260 net/sctp/output.c:401 Call Trace:

sctppackettransmitchunk+0x31/0x250 net/sctp/output.c:189 sctpoutqflushdata+0xa29/0x26d0 net/sctp/outqueue.c:1111 sctpoutqflush+0xc80/0x1240 net/sctp/outqueue.c:1217 sctpcmdinterpreter.isra.0+0x19a5/0x62c0 net/sctp/smsideeffect.c:1787 sctpsideeffects net/sctp/smsideeffect.c:1198 [inline] sctpdosm+0x1a3/0x670 net/sctp/smsideeffect.c:1169 sctpassocbhrcv+0x33e/0x640 net/sctp/associola.c:1052 sctpinqpush+0x1dd/0x280 net/sctp/inqueue.c:88 sctprcv+0x11ae/0x3100 net/sctp/input.c:243 sctp6rcv+0x3d/0x60 net/sctp/ipv6.c:1127

The issue is triggered when sctpauthasocinitactivekey() fails in sctpsfdo51Cack() while processing an INIT_ACK. In this case, the command sequence is currently:

  • SCTPCMDPEER_INIT
  • SCTPCMDTIMERSTOP (T1INIT)
  • SCTPCMDTIMERSTART (T1COOKIE)
  • SCTPCMDNEWSTATE (COOKIEECHOED)
  • SCTPCMDASSOC_SHKEY
  • SCTPCMDGENCOOKIEECHO

If SCTPCMDASSOCSHKEY fails, asoc->shkey remains NULL, while asoc->peer.authcapable and asoc->peer.peerchunks have already been set by SCTPCMDPEERINIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctpdatamsgfrom_user().

Since command interpretation stops on failure, no COOKIEECHO should been sent via SCTPCMDGENCOOKIEECHO. However, the T1COOKIE timer has already been started, and it may enqueue a COOKIEECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIEECHO in sctpoutqflush_data(), leading to the observed issue.

Similar to the other places where it calls sctpauthasocinitactivekey() right after sctpprocessinit(), this patch moves the SCTPCMDASSOCSHKEY immediately after SCTPCMDPEERINIT, before stopping T1INIT and starting T1COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23125.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
730fc3d05cd4ba4c9ce2de91f3d43349e95dbbf5
Fixed
5a309bedf02ee08b0653215f06c94d61ec7a214a
Fixed
784428ab1889eb185a1459e9d6bc52df33d572ef
Fixed
e94294798548e8cfbd80869e1d2f97efce92582c
Fixed
e7e81abbcc5620c9532080538f9709a6ea382855
Fixed
bf2b543b3cc4ebb4ab5bca4f8dfa5612035d45b8
Fixed
0c4adb1f391a7b92a0405e9d7c05624c0d9f8a65
Fixed
a80c9d945aef55b23b54838334345f20251dad83

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-23125.json"