CVE-2022-50770 in Linux
要約
〜によって VulDB • 2026年06月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ocfs2: ocfs2_mount_volume()におけるメモリリークの修正
kmemleakによって以下のようなメモリリークが報告されています。
unreferenced object 0xffff88810cc65e60 (size 32): comm "mount.ocfs2", pid 23753, jiffies 4302528942 (age 34735.105s) hex dump (first 32 bytes): 10 00 00 00 00 00 00 00 00 01 01 01 01 01 01 01 ................ 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 00 ................ backtrace: [<ffffffff8170f73d>] __kmalloc+0x4d/0x150
[<ffffffffa0ac3f51>] ocfs2_compute_replay_slots+0x121/0x330 [ocfs2]
[<ffffffffa0b65165>] ocfs2_check_volume+0x485/0x900 [ocfs2]
[<ffffffffa0b68129>] ocfs2_mount_volume.isra.0+0x1e9/0x650 [ocfs2]
[<ffffffffa0b7160b>] ocfs2_fill_super+0xe0b/0x1740 [ocfs2]
[<ffffffff818e1fe2>] mount_bdev+0x312/0x400
[<ffffffff819a086d>] legacy_get_tree+0xed/0x1d0
[<ffffffff818de82d>] vfs_get_tree+0x7d/0x230
[<ffffffff81957f92>] path_mount+0xd62/0x1760
[<ffffffff81958a5a>] do_mount+0xca/0xe0
[<ffffffff81958d3c>] __x64_sys_mount+0x12c/0x1a0
[<ffffffff82f26f15>] do_syscall_64+0x35/0x80
[<ffffffff8300006a>] entry_SYSCALL_64_after_hwframe+0x46/0xb0
このコールスタックは2つの問題に関連しています。第一に、ocfs2スーパーブロックは「replay_map」を使用してオンライン/オフラインスロットを追跡しており、リカバリおよびマウント時にオフラインスロットを復旧します。しかし、ocfs2_mount_volume()内でocfs2_truncate_log_init()がエラーを返した場合、「replay_map」のメモリはエラー処理パスで解放されません。第二に、ocfs2_fill_super()内でd_make_root()がエラーを返した場合も、「replay_map」のメモリは解放されません。ただし、ocfs2_complete_mount_recovery()でのリカバリおよびマウント完了時には「replay_map」のメモリは正常に解放されます。
最初の問題は、ocfs2_truncate_log_init()が失敗した際に「replay_map」を解放するためのエラー処理パスを追加することで修正します。二番目の問題は、「out_dismount」というエラー処理パスでocfs2_free_replay_slots(osb)を呼び出すことで修正します。さらに、ocfs2_free_replay_slots()は静的関数であるため、そのstatic属性を削除
Be aware that VulDB is the high quality source for vulnerability data.