本文へスキップ

NixとLix、ローカルでroot権限を得られるデーモンの脆弱性を修正

NixとLixは10月13日、デーモン(daemon)の脆弱性を公開しました。組み合わせると、root権限への権限昇格が可能です。修正は、Nix 2.35.3とLix 2.95.4のほか、複数のパッチリリースに含まれています。

著者 Tech AI Wire Team

3 分で読めます

nix-daemonに関するGitHubのセキュリティアドバイザリGHSA-jwvx-xq5j-gc56。深刻度は「High」で10点満点中8.4とされ、影響を受けるNixのバージョンと修正済みのバージョンが一覧になっています。

数字で見る

CVSS score of the most serious Nix flaw
8.4
Nix security advisories published on October 13
5
Nix release that introduced the repair flaw
2.1

NixとLixの両プロジェクトは2026年10月13日、セキュリティ上の欠陥を共同で公開しました。これらを組み合わせると、パッケージをビルドするデーモンが動くマシンでroot権限を得られます。修正版は同じ日に公開されました。信頼できないユーザーがデーモンに接続できるマルチユーザー構成のNixやLixは、今すぐアップグレードすべきです。

Nixは、LinuxディストリビューションのNixOSの土台となるパッケージマネージャー兼ビルドシステムです。Lixは、Nixの別実装です。どちらも、ローカルユーザーの代わりにソフトウェアをビルドするバックグラウンドサービス、つまりデーモンを動かします。

脆弱性の内容

NixOS Discourseの共同アドバイザリには、いくつかの問題が挙げられています。最も深刻なものでは、ローカルユーザーが、後でrootとして実行されるファイルを改ざんできます。

問題影響を受ける環境深刻度
権限のない「repair」(修復)リクエストで、ストアのファイルが検証前に置き換えられるLinuxとmacOSのマルチユーザー環境重要、10点満点中8.4(Nixのアドバイザリ)
builtins.genListの整数オーバーフローにより、ヒープメモリへの書き込みが起きる信頼できないNixコードを評価するシステム警告
ビルドのサンドボックスプロファイルがサイズ上限を超えると、macOSのサンドボックスから脱出できるsandbox = trueまたはrelaxedを設定したmacOS警告
マルチユーザー用インストーラーが、ストアのファイルをインストールしたユーザーの所有のまま残すスクリプト形式のインストーラーによる新規インストール。NixOSは影響を受けない警告、5.6
デーモンがビルドユーザーからの接続を受け付けるmacOSとFreeBSD。Linuxは影響を受けない注意、3.8

Nix側は、GitHubのアドバイザリを5件公開しました。CVE番号は、まだどれにも割り当てられていません。

root権限昇格の仕組み

主なバグは、デーモンがNixストアにファイルを追加する方法にあります。Nixストアは、ビルドされたすべてのソフトウェアが置かれるディレクトリです。NixのアドバイザリGHSA-jwvx-xq5j-gc56によると、デーモンはアップロードされたアーカイブを、最終的なストアパスへ直接展開していました。アーカイブのハッシュを確認するのは、その後でした。

脆弱なバージョンでは、信頼できないユーザーが「repair」(修復)も要求できました。repairは、既存のストアパスを置き換える処理です。ハッシュの確認に失敗しても、悪意のあるファイルはディスク上に残りました。アドバイザリによると、デーモンがrootで動いている場合、allowed-usersに載っているどのユーザーもrootとしてコードを実行できました。

この欠陥は、ストリーミングアップロードを追加したNix 2.1までさかのぼります。修正により、信頼できないユーザーはrepairモードを使えなくなりました。さらに、アップロードはいったん専用の一時フォルダーに展開され、ハッシュが一致した後でのみ所定の場所へ移されます。

アドバイザリは、発見者としてGuthrie McAfee Armstrong氏と、joaoviictortiという名で知られる研究者を挙げています。

インストールすべきバージョン

プロジェクト修正版
Nix2.35.3, 2.34.9, 2.31.6, 2.30.6, 2.28.8
Lix2.95.4, 2.94.3

アドバイザリによると、サポートが終了したNixのブランチ2.29、2.32、2.33は、脆弱だとみなすべきです。Lix 2.93以前も影響を受けますが、すでにメンテナンスされていません。NixOSのunstableチャンネルと26.05チャンネルでは、更新の作業が進んでいます。

パッケージマネージャーのGuixは影響を受けません。

数か月がかりのタイムライン

Lixチームの解説記事からは、調整にどれだけ時間がかかったかがわかります。オーバーフローのバグがチームに報告されたのは7月29日で、修正は8月29日に用意できました。macOSの権限昇格チェーンは9月12日に、サンドボックス脱出は10月9日に届きました。

Lixの記事は、同プロジェクトのデーモンがセキュリティ境界ではないと強調しています。ビルドファームに対しては、可能であればデーモンを権限のないユーザーで動かすよう勧めています。

Tech AI Wireは先月、別のサプライチェーン上の懸念として、改ざんされたstripバイナリでNixOSにバックドアを仕込める問題を報じました。

開発者にとっての意味

  • マルチユーザー環境はすべてアップグレードすること。 複数の人やサービスがNixデーモンとやり取りするマシンは、どれも攻撃にさらされています。シングルユーザー環境のリスクは低めですが、それでも更新すべきです。
  • Lixは正しい手順でアップグレードすること。 アドバイザリは、単にnix upgrade-nixを実行すると、新しいバージョンを入れる前にLix 2.95.xがアンインストールされる場合があると警告しています。代わりに、Lix 2.95.4のアップグレード用スクリプトを使ってください。
  • スクリプトでインストールした後は、ストアの所有者を確認すること。 Nixをマルチユーザー用スクリプトでインストールした場合は、アドバイザリが示すコマンドで、すべてのストアパスの所有者をrootに戻せます。
  • allowed-usersを監査すること。 アップグレードするまでは、このリストに載っている全員が事実上rootになれます。ビルドが必要なアカウントだけに絞ってください。
  • 信頼できないNixコードは、信頼できないものとして扱うこと。 外部の人からのプルリクエストを評価するCIシステムは、オーバーフローのバグに当たる可能性があります。そうした評価は、隔離されたマシンで実行してください。

出典

  1. Security advisory for Nix and Lix - October 2026 - NixOS Discourse
  2. 3 security issues in Lix - Lix
  3. nix-daemon: Unprivileged clients can corrupt store paths via repair flag in AddToStoreNar/AddMultipleToStore - GitHub (NixOS/nix)
  4. Nix and Lix local root-privilege-escalation vulnerabilities - LWN.net

関連記事