製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
Title LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
Summary

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の非同期待機がエラーを返した場合に同期的なクリーンアップ処理をスキップすることで修正されました。

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

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

Publication Date April 23, 2026, midnight
Registration Date April 30, 2026, 11:05 a.m.
Last Update April 30, 2026, 11:05 a.m.
CVSS3.0 : 緊急
Score 9.8
Vector CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Affected System
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 (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年04月30日]
  掲載
April 30, 2026, 11:05 a.m.

NVD Vulnerability Information
CVE-2026-31533
Summary

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.

Publication Date April 24, 2026, 3:16 a.m.
Registration Date April 25, 2026, 4:06 a.m.
Last Update April 29, 2026, 11:51 p.m.
Affected software configurations
Configuration1 or higher or less more than less than
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:*:*:*:*:*:*
Related information, measures and tools
Common Vulnerabilities List