CVE-2022-49837 in Linux情報

要約

〜によって VulDB • 2026年06月23日

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

bpf: `__check_func_call` におけるメモリリークの修正

kmemleak がこの問題を報告しています:

unreferenced object 0xffff88817139d000 (size 2048): comm "test_progs", pid 33246, jiffies 4307381979 (age 45851.820s) hex dump (first 32 bytes): 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] kmalloc_trace+0x27/0xa0
[] __check_func_call+0x316/0x1230
[] check_helper_call+0x172e/0x4700
[] do_check+0x21d8/0x45e0
[] do_check_common+0x767/0xaf0
[] bpf_check+0x43e3/0x5bc0
[] bpf_prog_load+0xf26/0x1940
[] __sys_bpf+0xd2c/0x3650
[] __x64_sys_bpf+0x75/0xc0
[] do_syscall_64+0x3b/0x90
[] entry_SYSCALL_64_after_hwframe+0x63/0xcd

根本原因は以下の通りです。`prepare_func_exit()` 関数において、異常なシナリオ発生時に `state->curframe--;` の実行後にも呼び出し先(callee)が解放されていません。修正として、Andrii が提案したように、`state->curframe--;` を関数の最下部に移動し、ここで呼び出し先の解放と frame[] ポインタの NULL リセットを行います。

さらに、`__check_func_call()` 関数にも同様の問題があります。異常なシナリオにおいて `state->curframe++;` の実行前においても、呼び出し先は `free_func_state()` によって解放される必要があります。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

責任者

Linux

予約する

2025年05月01日

モデレーション

承諾済み

エントリ

VDB-306968

EPSS

0.00164

アクティビティ

非常低い

ソース

Want to stay up to date on a daily basis?

Enable the mail alert feature now!