LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性
タイトル LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。SUNRPCのauth_gssで、XDRデコードエラー経路においてメモリリークが発生していた問題を修正しました。gssx_dec_ctx()、gssx_dec_status()、およびgssx_dec_name()関数はgssx_dec_buffer()を介してメモリを割り当てており、この関数はkmemdup()を呼び出します。後続のデコード操作が失敗すると、これらの関数は割り当て済みのバッファを解放せずにすぐに戻ってしまうため、メモリリークが発生していました。特にgssx_dec_ctx()でのリークは重要であり、呼び出し元であるgssp_accept_sec_context_upcallがいくつかのバッファ長フィールドを0以外の値に初期化し、メモリ割り当てを引き起こしていました。たとえば、src_nameに対してgssx_dec_name()が成功し、targ_nameで失敗した場合、exported_context_token、mech、およびsrc_name.display_nameに割り当てられたメモリが参照されず回収不能になる事態が発生していました。エラー発生時に以前に割り当てたバッファを解放するために、gotoベースのクリーンアップ処理を追加しました。

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

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

公表日 2026年5月27日0:00
登録日 2026年6月26日12:00
最終更新日 2026年6月26日12:00
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Linux
Linux Kernel 3.10 以上 5.10.252 未満
Linux Kernel 5.11 以上 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日12:00

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

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

SUNRPC: auth_gss: fix memory leaks in XDR decoding error paths

The gssx_dec_ctx(), gssx_dec_status(), and gssx_dec_name()
functions allocate memory via gssx_dec_buffer(), which calls
kmemdup(). When a subsequent decode operation fails, these
functions return immediately without freeing previously
allocated buffers, causing memory leaks.

The leak in gssx_dec_ctx() is particularly relevant because
the caller (gssp_accept_sec_context_upcall) initializes several
buffer length fields to non-zero values, resulting in memory
allocation:

struct gssx_ctx rctxh = {
.exported_context_token.len = GSSX_max_output_handle_sz,
.mech.len = GSS_OID_MAX_LEN,
.src_name.display_name.len = GSSX_max_princ_sz,
.targ_name.display_name.len = GSSX_max_princ_sz
};

If, for example, gssx_dec_name() succeeds for src_name but
fails for targ_name, the memory allocated for
exported_context_token, mech, and src_name.display_name
remains unreferenced and cannot be reclaimed.

Add error handling with goto-based cleanup to free any
previously allocated buffers before returning an error.

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