LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
タイトル LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
概要

Linuxカーネルのnet/tlsにおいて、tls_do_encryptionの-EBUSYエラーパスで発生するuse-after-freeの脆弱性が修正されました。この問題は、crypto_aead_encrypt()が-EBUSYを返した際に、非同期コールバックtls_encrypt_done()と同期的なクリーンアップ処理がencrypt_pendingを二重にデクリメントし、scatterlistの復元が二重に行われることで発生しました。その結果、encrypt_pendingの管理が破損し、後続の処理で解放済みのリソースにアクセスするuse-after-freeが引き起こされました。本問題は、-EBUSYの非同期待機がエラーを返した場合に同期的なクリーンアップ処理をスキップすることで修正されました。

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

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

公表日 2026年4月23日0:00
登録日 2026年4月30日11:05
最終更新日 2026年4月30日11:05
CVSS3.0 : 緊急
スコア 9.8
ベクター CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Linux
Linux Kernel 5.15.160 以上 5.15.203 未満
Linux Kernel 6.1.84 以上 6.1.169 未満
Linux Kernel 6.13 以上 6.18.23 未満
Linux Kernel 6.19 以上 6.19.13 未満
Linux Kernel 6.6.18 以上 6.6.135 未満
Linux Kernel 6.7.6 以上 6.8 未満
Linux Kernel 6.8.1 以上 6.12.82 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年04月30日]
  掲載
2026年4月30日11:05

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

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

net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption

The -EBUSY handling in tls_do_encryption(), introduced by commit
859054147318 ("net: tls: handle backlogging of crypto requests"), has
a use-after-free due to double cleanup of encrypt_pending and the
scatterlist entry.

When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to
the cryptd backlog and the async callback tls_encrypt_done() will be
invoked upon completion. That callback unconditionally restores the
scatterlist entry (sge->offset, sge->length) and decrements
ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an
error, the synchronous error path in tls_do_encryption() performs the
same cleanup again, double-decrementing encrypt_pending and
double-restoring the scatterlist.

The double-decrement corrupts the encrypt_pending sentinel (initialized
to 1), making tls_encrypt_async_wait() permanently skip the wait for
pending async callbacks. A subsequent sendmsg can then free the
tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still
pending, resulting in a use-after-free when the callback fires on the
freed record.

Fix this by skipping the synchronous cleanup when the -EBUSY async
wait returns an error, since the callback has already handled
encrypt_pending and sge restoration.

公表日 2026年4月24日3:16
登録日 2026年4月25日4:06
最終更新日 2026年4月29日23:51
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.15.160 5.15.203
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.1.84 6.1.169
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.6.18 6.6.135
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7.6 6.8
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.8.1 6.12.82
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 6.18.23
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.13
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:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧