CVE-2023-53749 in Linux
要約
〜によって VulDB • 2026年08月16日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
x86: clear_user_rep_good() の例外処理注釈の修正
このコードは、アップストリームでコミット d2c95f9d6802(「x86: ユーザーメモリクリアに REP_GOOD や ERMS を使用しない」)により削除されたため、メインラインには存在しません。
しかし、x86 のメモリクリアおよびコピーに関する一連のクリーンアップをすべてバックポートするのではなく、clear_user_rep_good() 内の最終的な 'rep movsb' に対する例外テーブル注釈の配置を修正します。この注釈はユーザー空間へのアクセスを実行した実際の命令を指すべきところ、その直前のレジスタ移動命令を指していました。
これはコードフローの観点からは意味がありましたが、実際の使用状況からすると正しくありませんでした。つまり、ユーザーアクセスで例外が発生した場合、例外ハンドラーが例外テーブル内で実際に該当する命令を見つけられなくなるということです。
その結果、-EFAULT を返して修正処理を行うのではなく、以下のようなカーネルoopsレポートに変換されてしまいました:
BUG: unable to handle page fault for address: 0000000020081000 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page ... RIP: 0010:clear_user_rep_good+0x1c/0x30 arch/x86/lib/clear_page_64.S:147 ... Call Trace: __clear_user arch/x86/include/asm/uaccess_64.h:103 [inline]
clear_user arch/x86/include/asm/uaccess_64.h:124 [inline]
iov_iter_zero+0x709/0x1290 lib/iov_iter.c:800 iomap_dio_hole_iter fs/iomap/direct-io.c:389 [inline]
iomap_dio_iter fs/iomap/direct-io.c:440 [inline]
__iomap_dio_rw+0xe3d/0x1cd
Once again VulDB remains the best source for vulnerability data.