製品・ソフトウェアに関する情報
LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性
Title LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性
Summary

Linuxカーネルのmm/damon/coreに存在していた脆弱性が修正されました。damon_call()のコールバック関数内でdamon_commit_ctx()が失敗すると、部分的に更新された破損したコンテキストが使用される可能性があり、それが予期しない動作やNULLポインタ参照を引き起こす恐れがあります。そこで、damon_ctx構造体にmaybe_corruptedフィールドを追加し、失敗時にこのフラグを設定して破損したコンテキストの使用を防ぐ仕組みを導入しました。この変更により、damon_commit_ctx()の内部メモリ割り当て失敗による問題が軽減され、システムの安定性が向上しました。

Possible impacts 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date April 22, 2026, midnight
Registration Date May 11, 2026, 11:01 a.m.
Last Update May 11, 2026, 11:01 a.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 6.15 以上 6.18.21 未満
Linux Kernel 6.19 以上 6.19.11 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月11日]
  掲載
May 11, 2026, 11:01 a.m.

NVD Vulnerability Information
CVE-2026-31445
Summary

In the Linux kernel, the following vulnerability has been resolved:

mm/damon/core: avoid use of half-online-committed context

One major usage of damon_call() is online DAMON parameters update. It is
done by calling damon_commit_ctx() inside the damon_call() callback
function. damon_commit_ctx() can fail for two reasons: 1) invalid
parameters and 2) internal memory allocation failures. In case of
failures, the damon_ctx that attempted to be updated (commit destination)
can be partially updated (or, corrupted from a perspective), and therefore
shouldn't be used anymore. The function only ensures the damon_ctx object
can safely deallocated using damon_destroy_ctx().

The API callers are, however, calling damon_commit_ctx() only after
asserting the parameters are valid, to avoid damon_commit_ctx() fails due
to invalid input parameters. But it can still theoretically fail if the
internal memory allocation fails. In the case, DAMON may run with the
partially updated damon_ctx. This can result in unexpected behaviors
including even NULL pointer dereference in case of damos_commit_dests()
failure [1]. Such allocation failure is arguably too small to fail, so
the real world impact would be rare. But, given the bad consequence, this
needs to be fixed.

Avoid such partially-committed (maybe-corrupted) damon_ctx use by saving
the damon_commit_ctx() failure on the damon_ctx object. For this,
introduce damon_ctx->maybe_corrupted field. damon_commit_ctx() sets it
when it is failed. kdamond_call() checks if the field is set after each
damon_call_control->fn() is executed. If it is set, ignore remaining
callback requests and return. All kdamond_call() callers including
kdamond_fn() also check the maybe_corrupted field right after
kdamond_call() invocations. If the field is set, break the kdamond_fn()
main loop so that DAMON sill doesn't use the context that might be
corrupted.

[sj@kernel.org: let kdamond_call() with cancel regardless of maybe_corrupted]

Publication Date April 22, 2026, 11:16 p.m.
Registration Date April 25, 2026, 4:05 a.m.
Last Update April 24, 2026, 1:17 a.m.
Related information, measures and tools
Common Vulnerabilities List