LinuxのLinux Kernelにおける二重解放に関する脆弱性
タイトル LinuxのLinux Kernelにおける二重解放に関する脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。net: hns3でのtx spareバッファの二重解放問題に対する修正です。hns3_set_ringparam()では、ロールバック用にリング構造の一時コピー(tmp_rings)が作成されます。しかし、元のリングハンドル内のtx_spareポインタが古いバックアップメモリを指したまま誤って残されていました。後に、hns3_init_all_ring()のセットアップ中にメモリ割り当てが失敗した場合、エラーパスは新たに割り当てられたすべてのリングを解放しようとします。tx_spareが古い(NULLでない)バックアップポインタを保持しているため、新しいバッファと誤認されて誤って解放され、バックアップメモリの二重解放が発生していました。根本的な原因は、tx_spareフィールドがtmp_ringsに値が保存された後もクリアされず、ダングリングポインタが残っていたことです。新しいtx_spareの作成に失敗した場合、元のリング構造内のtx_spareをNULLに設定することでこれを修正しました。これにより、エラー時のクリーンアップパスは本当に新たに割り当てられたバッファのみを解放するようになりました。

想定される影響 ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 
対策

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

公表日 2026年5月27日0:00
登録日 2026年6月26日11:59
最終更新日 2026年6月26日11:59
CVSS3.0 : 重要
スコア 7.8
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Linux
Linux Kernel 5.14 以上 5.15.202 未満
Linux Kernel 5.16 以上 6.1.165 未満
Linux Kernel 6.13 以上 6.18.14 未満
Linux Kernel 6.19 以上 6.19.4 未満
Linux Kernel 6.2 以上 6.6.128 未満
Linux Kernel 6.7 以上 6.12.75 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年06月26日]
  掲載
2026年6月26日11:59

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

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

net: hns3: fix double free issue for tx spare buffer

In hns3_set_ringparam(), a temporary copy (tmp_rings) of the ring structure
is created for rollback. However, the tx_spare pointer in the original
ring handle is incorrectly left pointing to the old backup memory.

Later, if memory allocation fails in hns3_init_all_ring() during the setup,
the error path attempts to free all newly allocated rings. Since tx_spare
contains a stale (non-NULL) pointer from the backup, it is mistaken for
a newly allocated buffer and is erroneously freed, leading to a double-free
of the backup memory.

The root cause is that the tx_spare field was not cleared after its value
was saved in tmp_rings, leaving a dangling pointer.

Fix this by setting tx_spare to NULL in the original ring structure
when the creation of the new `tx_spare` fails. This ensures the
error cleanup path only frees genuinely newly allocated buffers.

公表日 2026年5月27日23:17
登録日 2026年5月28日4:11
最終更新日 2026年5月27日23:48
関連情報、対策とツール
共通脆弱性一覧