Debian等の複数ベンダの製品における再帰制御に関する脆弱性
タイトル Debian等の複数ベンダの製品における再帰制御に関する脆弱性
概要

Linuxカーネルのeventpoll機能において発生していた、半無制限の再帰の問題が修正されました。今回の修正により、epollインスタンスがEP_MAX_NESTSを超えるリンク深度のグラフを形成できなくなりました。また、下位や上位への経路の深さに関係なく、経路長がEP_MAX_NESTSエッジ以内に収まるようチェックが強化されました。さらに、修正では各ノードのサブツリーの深度や上向き探索の最大深度を判定する処理が追加され、これらの値によってepollノード間の経路長が制限されるようになっています。

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

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

公表日 2025年8月19日0:00
登録日 2026年1月13日18:42
最終更新日 2026年1月13日18:42
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Debian
Debian GNU/Linux 11.0
Linux
Linux Kernel 2.6.32.30 以上 2.6.33 未満
Linux Kernel 2.6.33.8 以上 2.6.34 未満
Linux Kernel 2.6.34.10 以上 2.6.35 未満
Linux Kernel 2.6.35.12 以上 2.6.36 未満
Linux Kernel 2.6.37.3 以上 2.6.38 未満
Linux Kernel 2.6.38
Linux Kernel 2.6.38.1 以上 5.15.190 未満
Linux Kernel 5.16 以上 6.1.149 未満
Linux Kernel 6.13 以上 6.15.11 未満
Linux Kernel 6.16 以上 6.16.1 未満
Linux Kernel 6.2 以上 6.6.103 未満
Linux Kernel 6.7 以上 6.12.43 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年01月13日]
  掲載
2026年1月13日18:42

NVD脆弱性情報
CVE-2025-38614
概要

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

eventpoll: Fix semi-unbounded recursion

Ensure that epoll instances can never form a graph deeper than
EP_MAX_NESTS+1 links.

Currently, ep_loop_check_proc() ensures that the graph is loop-free and
does some recursion depth checks, but those recursion depth checks don't
limit the depth of the resulting tree for two reasons:

- They don't look upwards in the tree.
- If there are multiple downwards paths of different lengths, only one of
the paths is actually considered for the depth check since commit
28d82dc1c4ed ("epoll: limit paths").

Essentially, the current recursion depth check in ep_loop_check_proc() just
serves to prevent it from recursing too deeply while checking for loops.

A more thorough check is done in reverse_path_check() after the new graph
edge has already been created; this checks, among other things, that no
paths going upwards from any non-epoll file with a length of more than 5
edges exist. However, this check does not apply to non-epoll files.

As a result, it is possible to recurse to a depth of at least roughly 500,
tested on v6.15. (I am unsure if deeper recursion is possible; and this may
have changed with commit 8c44dac8add7 ("eventpoll: Fix priority inversion
problem").)

To fix it:

1. In ep_loop_check_proc(), note the subtree depth of each visited node,
and use subtree depths for the total depth calculation even when a subtree
has already been visited.
2. Add ep_get_upwards_depth_proc() for similarly determining the maximum
depth of an upwards walk.
3. In ep_loop_check(), use these values to limit the total path length
between epoll nodes to EP_MAX_NESTS edges.

公表日 2025年8月20日2:15
登録日 2025年8月20日4:00
最終更新日 2025年8月20日2:15
関連情報、対策とツール
共通脆弱性一覧