Linuxカーネルにおいて、以下の脆弱性が修正されました。ubiのubi_wl_put_peb関数において、wear-leveling作業が失敗した際に発生する無限ループが修正されました。具体的には、ubifs_bgt、ubi_bgt、ubifs_leb_unmap、ubi_leb_unmap、ubi_eba_unmap_leb、ubi_wl_put_peb、wear_leveling_workerというプロセスで無限ループが発生します。詳しくは、e1 = rb_entry(rb_first(&ubi->used))、e2 = get_peb_for_wl(ubi)、ubi_io_read_vid_hdrがエラー(フラッシュ障害)を返す場合、out_error処理においてubi->move_fromとubi->move_toがNULLに設定され、wl_entry_destroy(ubi, e1)によりubi->lookuptbl[e->pnum]もNULLになります。その後、retryラベルでe = ubi->lookuptbl[pnum];がNULLを返し、e == ubi->move_fromがNULL == NULLで真となり、goto retryによって無限ループが発生します。この結果、CPU使用率が100%に達する症状が確認されました。この問題は以下の方法で修正されました。1) wear-levelingエントリがubi->lookuptblから削除されている場合、ubi_wl_put_peb関数が直ちに戻るようにしました。2) ubi->wl_lockを用いてwlエントリの削除を保護し、ubi_wl_put_peb内でのuse-after-free問題を防止しました。再現手順は[Link]から取得可能です。
Linux Linux Kernel 2.6.25 以上 4.14.308 未満 Linux Kernel 4.15 以上 4.19.276 未満 Linux Kernel 4.20 以上 5.4.235 未満 Linux Kernel 5.11 以上 5.15.100 未満 Linux Kernel 5.16 以上 6.1.18 未満 Linux Kernel 5.5 以上 5.10.173 未満 Linux Kernel 6.2 以上 6.2.5 未満
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
無限ループ(CWE-835) [NVD評価]
CVE-2023-53481
National Vulnerability Database (NVD) : CVE-2023-53481 関連文書 : ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f006f596fe851c3b6aae60b79f89f89f0e515d2f) 関連文書 : ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/4d57a7333e26040f2b583983e1970d9d460e56b0) 関連文書 : ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b40d2fbf47af58377e898b5062077a47bb28a132) 関連文書 : ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/5af1c643184a5d09ff5b3f334077a4d0a163c677) 関連文書 : ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/8a18856e074479bd050b01e688c58defadce7ab0) 関連文書 : ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3afaaf6f5867dc4ad383808d4053f428ec7b867d) 関連文書 : ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b5be23f6ae610bdb262160a1f294afee6d0e6a69) 関連文書 : ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/cc4bc532acda66189bddc03b3fe1ad689d9a48a2)
[2026年01月22日] 掲載