LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性
タイトル LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。tls_decrypt_async_wait()内のasync_holdのパージに関する問題です。async_holdキューは、AEADエンジンが散乱リストデータを参照している間、暗号化された入力skbを保持します。tls_decrypt_async_wait()が戻ると、すべてのAEAD操作が完了し、エンジンはもはやそれらのskbを参照しないため、無条件に解放できます。後続のパッチでtls_sw_read_sock()にバッチ非同期復号が追加され、新たに保留中のAEAD操作を排水し、保持されているskbを解放する必要がある呼び出し箇所が導入されました。__skb_queue_purge(&ctx-async_hold)をtls_decrypt_async_wait()に移動し、パージ処理を集中管理することで、すべての呼び出し元(recvmsgの排水パス、tls_do_decryption()の-EBUSYフォールバック、および新しいread_sockバッチパス)が同期時にそれぞれパージを管理することなく保持されたskbを解放できるようになりました。これにより、tls_strp_msg_hold()が一部の処理途中で失敗し、複製されたskbがasync_holdキューに追加された後に発生していたリークを修正しました。tls_decrypt_sg()はすべての保留中復号を処理するためにtls_decrypt_async_wait()を呼び出し、その後同期モードに戻りますが、tls_sw_recvmsg()は「完全非同期」モードで1つのレコードが処理されたときにのみasync_holdキューをフラッシュするため、ここではその動作が適用されていませんでした。[pabeni@redhat.com: リークに関するコメント追加]。

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

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

公表日 2026年4月2日0:00
登録日 2026年4月27日10:52
最終更新日 2026年4月27日10:52
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Linux
Linux Kernel 6.1.158 以上 6.1.168 未満
Linux Kernel 6.12.55 以上 6.12.80 未満
Linux Kernel 6.17.5 以上 6.18 未満
Linux Kernel 6.18
Linux Kernel 6.18.1 以上 6.18.21 未満
Linux Kernel 6.19 以上 6.19.11 未満
Linux Kernel 6.6.114 以上 6.6.131 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年04月27日]
  掲載
2026年4月27日10:52

NVD脆弱性情報
CVE-2026-23414
概要

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

tls: Purge async_hold in tls_decrypt_async_wait()

The async_hold queue pins encrypted input skbs while
the AEAD engine references their scatterlist data. Once
tls_decrypt_async_wait() returns, every AEAD operation
has completed and the engine no longer references those
skbs, so they can be freed unconditionally.

A subsequent patch adds batch async decryption to
tls_sw_read_sock(), introducing a new call site that
must drain pending AEAD operations and release held
skbs. Move __skb_queue_purge(&ctx->async_hold) into
tls_decrypt_async_wait() so the purge is centralized
and every caller -- recvmsg's drain path, the -EBUSY
fallback in tls_do_decryption(), and the new read_sock
batch path -- releases held skbs on synchronization
without each site managing the purge independently.

This fixes a leak when tls_strp_msg_hold() fails part-way through,
after having added some cloned skbs to the async_hold
queue. tls_decrypt_sg() will then call tls_decrypt_async_wait() to
process all pending decrypts, and drop back to synchronous mode, but
tls_sw_recvmsg() only flushes the async_hold queue when one record has
been processed in "fully-async" mode, which may not be the case here.

[pabeni@redhat.com: added leak comment]

公表日 2026年4月2日21:16
登録日 2026年4月15日11:23
最終更新日 2026年4月25日0:22
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.1.158 6.1.168
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.6.114 6.6.131
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.12.55 6.12.80
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.17.5 6.18
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.18.1 6.18.21
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.11
cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧