Debian等の複数ベンダの製品における解放済みメモリの使用に関する脆弱性
タイトル Debian等の複数ベンダの製品における解放済みメモリの使用に関する脆弱性
概要

Linuxカーネルにおいて、非同期暗号を使用した場合に crypt_message 関数で use-after-free が発生する問題が修正されました。暗号ハードウェアアクセラレータを使用すると、非同期処理によって暗号化要求のバッファが操作の完了前に解放される可能性があり、それがクラッシュを引き起こす場合があります。今回の修正により、暗号操作が完了するまでバッファの解放を遅延させることで、安全性が向上しました。

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

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

公表日 2025年7月28日0:00
登録日 2026年1月9日16:23
最終更新日 2026年1月9日16:23
CVSS3.0 : 重要
スコア 7.8
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Debian
Debian GNU/Linux 11.0
Linux
Linux Kernel 5.10.237 以上 5.10.241 未満
Linux Kernel 5.15.181 以上 5.15.190 未満
Linux Kernel 6.1.128 以上 6.1.147 未満
Linux Kernel 6.11.4 以上 6.12.40 未満
Linux Kernel 6.13 以上 6.15.8 未満
Linux Kernel 6.16
Linux Kernel 6.6.57 以上 6.6.100 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年01月09日]
  掲載
2026年1月9日16:23

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

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

smb: client: fix use-after-free in crypt_message when using async crypto

The CVE-2024-50047 fix removed asynchronous crypto handling from
crypt_message(), assuming all crypto operations are synchronous.
However, when hardware crypto accelerators are used, this can cause
use-after-free crashes:

crypt_message()
// Allocate the creq buffer containing the req
creq = smb2_get_aead_req(..., &req);

// Async encryption returns -EINPROGRESS immediately
rc = enc ? crypto_aead_encrypt(req) : crypto_aead_decrypt(req);

// Free creq while async operation is still in progress
kvfree_sensitive(creq, ...);

Hardware crypto modules often implement async AEAD operations for
performance. When crypto_aead_encrypt/decrypt() returns -EINPROGRESS,
the operation completes asynchronously. Without crypto_wait_req(),
the function immediately frees the request buffer, leading to crashes
when the driver later accesses the freed memory.

This results in a use-after-free condition when the hardware crypto
driver later accesses the freed request structure, leading to kernel
crashes with NULL pointer dereferences.

The issue occurs because crypto_alloc_aead() with mask=0 doesn't
guarantee synchronous operation. Even without CRYPTO_ALG_ASYNC in
the mask, async implementations can be selected.

Fix by restoring the async crypto handling:
- DECLARE_CRYPTO_WAIT(wait) for completion tracking
- aead_request_set_callback() for async completion notification
- crypto_wait_req() to wait for operation completion

This ensures the request buffer isn't freed until the crypto operation
completes, whether synchronous or asynchronous, while preserving the
CVE-2024-50047 fix.

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