CVE-2023-54023 in Linux情報

要約

〜によって VulDB • 2026年05月22日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

btrfs: バランス処理とキャンセル/一時停止の間の競合状態を修正

Syzbotによって、以下のようなパニックが報告されました。

assertion failed: fs_info->exclusive_operation == BTRFS_EXCLOP_BALANCE_PAUSED, in fs/btrfs/ioctl.c:465 ------------[ cut here ]------------
kernel BUG at fs/btrfs/messages.c:259! RIP: 0010:btrfs_assertfail+0x2c/0x30 fs/btrfs/messages.c:259 Call Trace: <TASK> btrfs_exclop_balance fs/btrfs/ioctl.c:465 [inline]
btrfs_ioctl_balance fs/btrfs/ioctl.c:3564 [inline]
btrfs_ioctl+0x531e/0x5b30 fs/btrfs/ioctl.c:4632 vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:870 [inline]
__se_sys_ioctl fs/ioctl.c:856 [inline]
__x64_sys_ioctl+0x197/0x210 fs/ioctl.c:856 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd

再現テストケースは、バランス処理とキャンセルまたは一時停止を並行して実行しています。 バランス処理の終了処理は少し複雑な構造になっており、一時停止状態だった場合は balance_ctl を fs_info に保存する必要がありますが、それ以外の場合はクリアしてクリーンアップする必要があります。 しかし、私たちは戻り値が特定のエラーであるか、キャンセルリクエストがあるか、一時停止リクエストがないことに依存しています。バランス処理が完了して 0 を返した場合でも、一時停止またはキャンセルリクエストがある場合、適切なクリーンアップが行われず、次にバランス処理を開始しようとした際にこの ASSERT がトリガーされます。

ここでのエラー処理は正しくありません。-ECANCELLED が返され、排他操作に適切な一時停止フラグを設定した場合を除き、常にクリーンアップを行う必要があります。このパッチを適用すると、再現テストケースは1時間以上トリガーすることなく実行されました。以前は数分以内にトリガーされていました。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

責任者

Linux

予約する

2025年12月24日

モデレーション

承諾済み

エントリ

VDB-338182

EPSS

0.00161

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!