LinuxのLinux Kernelにおける競合状態に関する脆弱性
タイトル LinuxのLinux Kernelにおける競合状態に関する脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。rpmsg: coreのdriver_override_show()関数における競合状態を修正し、coreヘルパーの使用を改善しました。driver_override_show関数はdevice_lockを保持せずにdriver_override文字列を読み取っていました。一方で、store関数はdevice_lockを保持しながら文字列を変更および解放していました。このため、store関数が文字列を解放している間にshow関数が読み取るという競合状態が発生し、use-after-freeの問題が生じていました。この問題を修正するために、rpmsg_string_attrマクロを明示的なshowおよびstore関数に置き換えました。新しいdriver_override_store関数は標準のdriver_set_overrideヘルパーを使用します。driver_set_overrideの導入以降、include/linux/rpmsg.hのコメントではdriver_overrideの設定や解除にはこのヘルパーを使用すべきとされていましたが、実装は今回まで更新されていませんでした。driver_set_overrideはdevice_lockを保持しながら文字列を変更および解放するため、新しいdriver_override_show関数は読み取り操作時に正しくdevice_lockを保持し、競合状態を防ぎます。さらに、rpmsg_string_attrはdriver_overrideのみに使用されていたため、このマクロを削除することでコードが簡素化されました。

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

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

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

NVD脆弱性情報
CVE-2025-71274
概要

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

rpmsg: core: fix race in driver_override_show() and use core helper

The driver_override_show function reads the driver_override string
without holding the device_lock. However, the store function modifies
and frees the string while holding the device_lock. This creates a race
condition where the string can be freed by the store function while
being read by the show function, leading to a use-after-free.

To fix this, replace the rpmsg_string_attr macro with explicit show and
store functions. The new driver_override_store uses the standard
driver_set_override helper. Since the introduction of
driver_set_override, the comments in include/linux/rpmsg.h have stated
that this helper must be used to set or clear driver_override, but the
implementation was not updated until now.

Because driver_set_override modifies and frees the string while holding
the device_lock, the new driver_override_show now correctly holds the
device_lock during the read operation to prevent the race.

Additionally, since rpmsg_string_attr has only ever been used for
driver_override, removing the macro simplifies the code.

公表日 2026年5月6日21:16
登録日 2026年5月7日4:08
最終更新日 2026年5月6日22:07
関連情報、対策とツール
共通脆弱性一覧