CVE-2023-53490 in Linux
要約
〜によって VulDB • 2026年05月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
mptcp: disconnectとacceptの間の競合状態(race condition)を修正
コミット 0ad529d9fd2b(「mptcp: recvmsg()におけるゼロ除算の可能性を修正」) notwithstanding、mptcpプロトコルは依然として disconnect()(または shutdown)と accept の間に競合状態に陥る可能性があります。
根本原因は、上記のコミットが msk レベルのフラグをチェックしている一方で、mptcp_stream_accept() は msk レベルのロックを取得しないためです。これは、最初のサブフローロックに直接依存できるためです。
Christoph によって報告された通り、これは mptcp_subflow_queue_clean() がリスナーソケットロックを解放した後、破壊的な操作を行う直前に、msk ソケットが accept される競合状態を引き起こす可能性があります。これにより、以下のスプラット(クラッシュログ)が発生します:
BUG: kernel NULL pointer dereference, address: 0000000000000012 PGD 5a4ca067 P4D 5a4ca067 PUD 37d4c067 PMD 0 Oops: 0000 [#1] PREEMPT SMP
CPU: 2 PID: 10955 Comm: syz-executor.5 Not tainted 6.5.0-rc1-gdc7b0989993d #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:tcp_recvmsg+0x100/0x160 net/ipv4/tcp.c:2630 Call Trace: <TASK> mptcp_stream_accept+0x100/0x1a0 net/mptcp/stream.c:100 do_accept+0x1ae/0x260 net/socket.c:1872 __sys_accept4+0x9b/0x110 net/socket.c:1913 __do_sys_accept4 net/socket.c:1954 [inline]
__se_sys_accept4 net/socket.c:1951 [inline]
__x64_sys_accept4+0x20/0x30 net/socket.c:1951 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x47/0xa0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x6e/0xd8
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.