<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Io_uring on 思いつきそうで思いつかなくていたときに</title><link>https://blog.fuga.jp/tags/io_uring/</link><description>Recent content in Io_uring on 思いつきそうで思いつかなくていたときに</description><generator>Hugo -- gohugo.io</generator><language>ja</language><copyright>Copyright(c) 2022-2025 SATO Daisuke. All rights reserved.</copyright><lastBuildDate>Thu, 16 Jul 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://blog.fuga.jp/tags/io_uring/index.xml" rel="self" type="application/rss+xml"/><item><title>週290万DLのnpmが正規署名ごと汚染――10年消えなかった鍵が突きつける「信頼は取り消しで試される」問題</title><link>https://blog.fuga.jp/posts/2026-07-16-npm-supply-chain-shim-secure-boot-revocation/</link><pubDate>Thu, 16 Jul 2026 00:00:00 +0900</pubDate><guid>https://blog.fuga.jp/posts/2026-07-16-npm-supply-chain-shim-secure-boot-revocation/</guid><description>&lt;h2 id="はじめに">&lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="header-anchor">&lt;/a>はじめに
&lt;/h2>&lt;p>正規の署名がついているから安全、というのは半分しか正しくありません。今日紹介する2つの事件は、その「半分」の危うさをこれでもかと見せつけてきます。npmのプロベナンス証明書と、MicrosoftのSecure Boot署名。どちらも「これは正規のものです」と保証するための仕組みなのに、その保証レイヤーそのものを迂回されてしまいました。今日はこの2本を軸に、Linux/OSS界隈の5本をまとめます。&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/6ZZbKEmgdpo"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="1-asyncapi-npmパッケージ4件にボットネットローダー混入証明書つきで汚染が成立した日">&lt;a href="#1-asyncapi-npm%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b84%e4%bb%b6%e3%81%ab%e3%83%9c%e3%83%83%e3%83%88%e3%83%8d%e3%83%83%e3%83%88%e3%83%ad%e3%83%bc%e3%83%80%e3%83%bc%e6%b7%b7%e5%85%a5%e8%a8%bc%e6%98%8e%e6%9b%b8%e3%81%a4%e3%81%8d%e3%81%a7%e6%b1%9a%e6%9f%93%e3%81%8c%e6%88%90%e7%ab%8b%e3%81%97%e3%81%9f%e6%97%a5" class="header-anchor">&lt;/a>1. @asyncapi npmパッケージ4件にボットネットローダー混入――「証明書つき」で汚染が成立した日
&lt;/h2>&lt;p>まず一発目からかなり重い話です。API仕様記述の標準として広く使われる&lt;code>@asyncapi&lt;/code>のnpm名前空間で、4パッケージ・計5バージョンが多段階ボットネットローダー「Miasma RAT v3」の配布に悪用されました。週合計およそ290万ダウンロードという、CI環境で日常的に&lt;code>npm install&lt;/code>されるツール群がやられています。&lt;/p>
&lt;p>侵入経路がまた手が込んでいます。攻撃者は&lt;code>elzotebo999&lt;/code>というアカウントで36件ものスパムPRを立ててメンテナの目を散らし、その裏で&lt;code>pull_request_target&lt;/code>トリガーの誤設定を突いて本命のPRを通しました。このトリガー、フォークからのPRでもベースリポジトリの権限で動くのでシークレットにアクセスできてしまう代物です。窃取した高権限PATでリリースワークフローを起動させ、悪性版パッケージをnpmへ公開させた、という流れでした。&lt;/p>
&lt;p>ペイロードも念入りで、&lt;code>require()&lt;/code>が呼ばれたタイミングで発火する遅延実行、IPFS経由でのダウンロード、AES-256-GCM暗号化された8.25MBのローダー…と、静的スキャナをすり抜ける工夫が随所にあります。展開されるMiasma RAT本体は744モジュール・91,973行、C2チャネルはHTTPからEthereumスマートコントラクトまで7系統。正直、ここまでの規模のRATがnpmパッケージ経由で降ってくると聞くと背筋が伸びます。&lt;/p>
&lt;p>そして一番引っかかるのがここです。汚染された5バージョンはすべて、npmの正規OIDC信頼済みパブリッシャー経由で公開され、有効なSLSAプロベナンス証明書が付与されていました。プロベナンスは「どのビルド環境から出たか」を証明する仕組みですが、そのビルド環境自体が乗っ取られていれば、証明書は「正しく汚染されている」ことを保証するだけになってしまう。しかもこの脆弱なワークフロー、58日間も内部で指摘されながら放置されていたというオチまでついています。この記事を書きながら、筆者も真っ先に手元のプロジェクトの&lt;code>package-lock.json&lt;/code>を&lt;code>grep&lt;/code>しました。幸い今回は該当バージョンにヒットしませんでしたが、正直ヒヤッとしたのは事実です。皆さんも心当たりがあれば、今すぐ確認をおすすめします。&lt;/p>
&lt;h2 id="2-io_uringにロックレスmpscキュー導入linux-72で非同期ioの土台を作り直す">&lt;a href="#2-io_uring%e3%81%ab%e3%83%ad%e3%83%83%e3%82%af%e3%83%ac%e3%82%b9mpsc%e3%82%ad%e3%83%a5%e3%83%bc%e5%b0%8e%e5%85%a5linux-72%e3%81%a7%e9%9d%9e%e5%90%8c%e6%9c%9fio%e3%81%ae%e5%9c%9f%e5%8f%b0%e3%82%92%e4%bd%9c%e3%82%8a%e7%9b%b4%e3%81%99" class="header-anchor">&lt;/a>2. io_uringにロックレスMPSCキュー導入――Linux 7.2で非同期I/Oの土台を作り直す
&lt;/h2>&lt;p>ここでいったん、地味だけど効く話に切り替えます。Linux 7.2のio_uringサブシステムに、Dmitry Vyukov設計のロックレスMPSCキューが導入されました。従来はllist（LIFOリンクリスト）でtask_workを積んでいたため、FIFOの順序に戻すためのO(n)反転処理を毎回回す必要があったのですが、新実装はキュー構造そのものでFIFOを保証するため、この反転コストがまるごと消えます。push操作はアトミック交換1回で完了、しかも面倒だった「リトライリスト」も不要になりました。&lt;/p>
&lt;p>ユーザースペースのAPIは一切変わらないので、Nginx・PostgreSQL・RocksDBのようなio_uringを使うアプリは、カーネルを上げるだけで恩恵を受けられます。派手なベンチマーク値はまだ出ていませんが、キューが深くなる高負荷時ほど効きそうな改善です。機能を足すのではなく機構を削って速くする、こういうリファクタリング、個人的にすごく好きです。&lt;/p>
&lt;h2 id="3-linus-torvaldslinuxはai反対プロジェクトでも社会運動でもないと明言">&lt;a href="#3-linus-torvaldslinux%e3%81%afai%e5%8f%8d%e5%af%be%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%a7%e3%82%82%e7%a4%be%e4%bc%9a%e9%81%8b%e5%8b%95%e3%81%a7%e3%82%82%e3%81%aa%e3%81%84%e3%81%a8%e6%98%8e%e8%a8%80" class="header-anchor">&lt;/a>3. Linus Torvalds「LinuxはAI反対プロジェクトでも社会運動でもない」と明言
&lt;/h2>&lt;p>小休止トピックです。GoogleのRoman GushchinがRustで実装したエージェント型AIコードレビューツール「Sashiko」をめぐる論争を受けて、Torvaldsが踏み込んだ発言をしました。「LinuxはアンチAIプロジェクトのひとつではない。フォークするかここを去ればいい」。Sashikoは直近1,000件の未フィルタセットで53%のバグを発見し、しかもそのバグは人間レビュアーには100%見逃されていたという実績を出しています。&lt;/p>
&lt;p>とはいえ野放しにしているわけではありません。2026年4月施行のAIポリシーで、AIエージェントは法的拘束力を持つ&lt;code>Signed-off-by&lt;/code>タグを使えず、代わりに&lt;code>Assisted-by&lt;/code>タグで使用を透明化し、AIが生成したコードの責任はすべて提出した人間が負う、と明確に線引きされています。「便利だから使う、ただし責任は人間が丸ごと引き受ける」というこの落とし所、他のOSSプロジェクトがAI導入を検討する際の参考になりそうです。&lt;/p>
&lt;h2 id="4-cosmic-epoch-13リリース全rust製デスクトップ初のfrosted-glass実装">&lt;a href="#4-cosmic-epoch-13%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e5%85%a8rust%e8%a3%bd%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e5%88%9d%e3%81%aefrosted-glass%e5%ae%9f%e8%a3%85" class="header-anchor">&lt;/a>4. COSMIC Epoch 1.3リリース――全Rust製デスクトップ初のFrosted Glass実装
&lt;/h2>&lt;p>明るい話題も挟みます。System76がCOSMIC Epoch 1.3.0をリリースしました。目玉はすりガラス（Frosted Glass）エフェクト。パネルやウィンドウにまで適用範囲が及び、実装のために基盤ライブラリ&lt;code>libcosmic&lt;/code>全体を更新する必要があったとのこと。全Rust製デスクトップがこの手のブラー系エフェクトを本格実装したのは初めてで、「Rustでは描画が重い」という懸念への実物の回答になっています。&lt;/p>
&lt;p>GPU監視まわりも地味に強化されていて、Intel GPUのVRAM使用量取得、AMD／IntelのGPU消費電力のリアルタイム表示が追加されました。ラップトップの省電力管理やクリエイティブ用途で刺さる機能です。2025年12月の安定版1.0からわずか7ヶ月でここまで来ているペースの速さには素直に驚きました（正直、Rustデスクトップはもう少しゆっくり育つものだと思っていました）。&lt;/p>
&lt;h2 id="5-uefi失効リストに未登録の旧shimバージョンsecure-bootバイパスが今も有効">&lt;a href="#5-uefi%e5%a4%b1%e5%8a%b9%e3%83%aa%e3%82%b9%e3%83%88%e3%81%ab%e6%9c%aa%e7%99%bb%e9%8c%b2%e3%81%ae%e6%97%a7shim%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3secure-boot%e3%83%90%e3%82%a4%e3%83%91%e3%82%b9%e3%81%8c%e4%bb%8a%e3%82%82%e6%9c%89%e5%8a%b9" class="header-anchor">&lt;/a>5. UEFI失効リストに未登録の旧shimバージョン――Secure Bootバイパスが今も有効
&lt;/h2>&lt;p>締めは今日最大級のインパクト、そして1本目と対になる話です。ESETが発見した11個の旧shimブートローダー（v0.9以下）が、MicrosoftのUEFI失効データベース（dbx）に10年以上登録されないままでした。管理者権限を持つ攻撃者がSecure Bootを迂回してOS起動前に任意コードを実行できる状態が、実に10年以上放置されていたことになります。CVE-2026-8863（CVSS 7.8）とCVE-2026-10797が割り当てられ、CMU CERTが7月15日にVU#616257としてアドバイザリを公開しました。&lt;/p>
&lt;p>shimはUEFIファームウェアとLinuxカーネルをつなぐ「橋渡し役」で、Microsoftの証明書で署名された信頼の起点です。ところが古いshim（v0.9以下）にはコンポーネント単位で世代管理するSBAT（Secure Boot Advanced Targeting）が存在せず、無効化する手段はdbx更新しか残っていません。そのdbxに11バイナリが長年登録されていなかったのですから、防御手段が実質ゼロの状態が続いていたわけです。攻撃者は脆弱なshimバイナリをターゲットマシンに持ち込むだけで、BoozkittyやBlackLotusのようなUEFIブートキットをSecure Bootが有効なシステムにすら展開できてしまいます。&lt;/p>
&lt;p>Linux側の対応は&lt;code>sudo fwupdmgr refresh &amp;amp;&amp;amp; sudo fwupdmgr update&lt;/code>でdbx更新を適用するのが基本線ですが、古いshimに依存していた環境は先にshimを更新しておかないと起動不能になる恐れがあるので、適用前にブート構成を確認してから、というのが現実的な進め方です。&lt;/p>
&lt;h2 id="まとめ">&lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="header-anchor">&lt;/a>まとめ
&lt;/h2>&lt;p>今日の5本を貫くテーマは、「署名された信頼は発行した瞬間がゴールではなく、その後どう取り消せるかで真価が問われる」ということでした。&lt;code>@asyncapi&lt;/code>では正規のプロベナンス証明書が汚染パッケージにお墨付きを与え、旧shimでは正規のMicrosoft署名が10年以上失効されずに生き延びた。発行の仕組みはどれも高度に整備されているのに、取り消しの運用が追いついていない――この非対称性、皆さんの現場ではどちらが盲点になっていますか。まずは手元のnpmロックファイルとブート構成、両方をちらっと確認するところから始めてみてください。&lt;/p></description></item></channel></rss>