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

Linuxカーネルにおいて、以下の脆弱性が修正されました。can: isotp: isotp_sendmsg()内のtx.bufの使用後解放の修正です。isotp_sendmsg()は、so-tx.bufへのアクセスを直列化するために、so-tx.stateに対してcmpxchg()のみを使用しています。isotp_release()はwait_event_interruptible()でISOTP_IDLEを待機し、その後kfree(so-tx.buf)を呼び出します。もしclose()内のwait_event_interruptible()がシグナルによって中断され、tx.stateがISOTP_SENDINGである場合、ループが早期に終了し、releaseは強制的にISOTP_SHUTDOWNへ進みます。sendmsgがまだisotp_fill_dataframe()で最終的なCANフレームのためにso-tx.bufを読み込んでいる最中にkfree(so-tx.buf)を続行してしまいます。so-tx.bufは、標準のtx.buf長を拡張する必要がある場合に1度だけ割り当てられます。この潜在的に拡張されたtx.bufのkfree()の呼び出しは、isotp_sendmsg()とisotp_release()のいずれも終了した時点のsk_destructのタイミングに移動されました。

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

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

Publication Date April 22, 2026, midnight
Registration Date April 30, 2026, 12:10 p.m.
Last Update April 30, 2026, 12:10 p.m.
CVSS3.0 : 重要
Score 7.8
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 6.13 以上 6.18.21 未満
Linux Kernel 6.19 以上 6.19.11 未満
Linux Kernel 6.4
Linux Kernel 6.4.1 以上 6.6.131 未満
Linux Kernel 6.7 以上 6.12.80 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年04月30日]
  掲載
April 30, 2026, 12:10 p.m.

NVD Vulnerability Information
CVE-2026-31474
Summary

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

can: isotp: fix tx.buf use-after-free in isotp_sendmsg()

isotp_sendmsg() uses only cmpxchg() on so->tx.state to serialize access
to so->tx.buf. isotp_release() waits for ISOTP_IDLE via
wait_event_interruptible() and then calls kfree(so->tx.buf).

If a signal interrupts the wait_event_interruptible() inside close()
while tx.state is ISOTP_SENDING, the loop exits early and release
proceeds to force ISOTP_SHUTDOWN and continues to kfree(so->tx.buf)
while sendmsg may still be reading so->tx.buf for the final CAN frame
in isotp_fill_dataframe().

The so->tx.buf can be allocated once when the standard tx.buf length needs
to be extended. Move the kfree() of this potentially extended tx.buf to
sk_destruct time when either isotp_sendmsg() and isotp_release() are done.

Publication Date April 22, 2026, 11:16 p.m.
Registration Date April 25, 2026, 4:05 a.m.
Last Update April 27, 2026, 11:16 p.m.
Related information, measures and tools
Common Vulnerabilities List