| Title | LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました。net/schedのtaprioにおけるクラスダンプ時のNULLポインタ逆参照の問題を修正しました。TAPRIOの子qdiscがRTM_DELQDISC経由で削除されると、taprio_graft()がnew == NULLの状態で呼ばれ、NULLをq-qdiscs[cl - 1]に格納します。その後のRTM_GETTCLASSのダンプ操作はtaprio_walk()で全クラスを巡回し、taprio_dump_class()を呼び出します。この過程でtaprio_leaf()がNULLポインタを返し、その逆参照によりchild-handleを読み取ろうとし、カーネルのNULLポインタ逆参照が発生してしまいます。このバグはCONFIG_NET_SCH_TAPRIOが有効な任意のカーネルで、namespaceスコープのCAP_NET_ADMIN権限を持つ場合に発生します。特権のないユーザー名前空間が有効なシステムでは、特権のないローカルユーザーが新しいネットワーク名前空間内でtaprio qdiscを作成し、明示的な子qdiscをグラフトし、それを削除し、クラスダンプを要求することでカーネルパニックを引き起こせます。RTM_GETTCLASSダンプ自体は権限を必要としません。修正はtaprio_graft()内でnewがNULLのときに&noop_qdiscに置換する方法で行われました。これはmultiq_graft()など他のqdiscでも用いられる共通のパターンであり、q-qdiscs[]スロットがNULLにならないようにするためのものです。この修正により、コントロールプレーンダンプパスが個別のNULLチェックを不要とし、安全に動作します。データプレーンパス(taprio_enqueueおよびtaprio_dequeue_from_txq)には以前より明示的なNULLガードがあり、パケットを正常に破棄またはスキップしていましたが、これらのチェックは&noop_qdiscのテストに更新されました。この更新がない場合、パケットはtaprio_enqueue_one()に到達し、ルートqdiscのqlenとbacklogが増加し、子のenqueueを呼び出します。noop_qdiscはパケットを破棄しますが、これらのカウンタはロールバックされず、ルートqdiscの統計が永久に膨張してしまいます。この変更後は*oldが有効なqdisc、NULL、または&noop_qdiscのいずれかとなり、qdisc_put(*old)は最初の場合にのみ呼び出し、増加していないnoop_qdiscのリファレンスカウントを減少させないようにしています。 |
| Possible impacts | ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 27, 2026, midnight |
| Registration Date | June 29, 2026, 11:17 a.m. |
| Last Update | June 29, 2026, 11:17 a.m. |
| CVSS3.0 : 警告 | |
| Score | 5.5 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 6.13 以上 6.18.33 未満 |
| Linux Kernel 6.19 以上 7.0.10 未満 |
| Linux Kernel 6.6 以上 6.6.141 未満 |
| Linux Kernel 6.7 以上 6.12.91 未満 |
| Linux Kernel 7.1 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年06月29日] 掲載 |
June 29, 2026, 11:17 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: net/sched: taprio: fix NULL pointer dereference in class dump When a TAPRIO child qdisc is deleted via RTM_DELQDISC, taprio_graft() The bug is reachable with namespace-scoped CAP_NET_ADMIN on any kernel Oops: general protection fault, probably for non-canonical address 0xdffffc0000000007: 0000 [#1] SMP KASAN NOPTI Fix this by substituting &noop_qdisc when new is NULL in Since the data-plane paths (taprio_enqueue and taprio_dequeue_from_txq) After this change *old can be a valid qdisc, NULL, or &noop_qdisc. |
|---|---|
| Publication Date | May 27, 2026, 8:16 p.m. |
| Registration Date | May 28, 2026, 4:10 a.m. |
| Last Update | May 27, 2026, 11:48 p.m. |