Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-84568 — CVE-2026-84568(fstype パストラバーサルによる root 権限でのコード実行)および CVE-2026-84570(Gatekeeper バイパス)に関する、再現可能な macOS automountd ラボ PoC とソースに基づく分析。 | Kitploit
ツール/GitHubGitHub/redinpulse/cve-2026-84568
特権昇格エクスプロイト論文と研究レッドチーミングラボと実践
GitHubredinpulse/cve-2026-84568

CVE-2026-84568

CVE-2026-84568(fstype パストラバーサルによる root 権限でのコード実行)および CVE-2026-84570(Gatekeeper バイパス)に関する、再現可能な macOS automountd ラボ PoC とソースに基づく分析。

リポジトリを見る
122126日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

CVE-2026-84568 および CVE-2026-84570 に関する公開されたソースガイド付き分析であり、LDAP/OD 入力、NFS 配信、ヘルパーディスパッチ、Gatekeeper の挙動、デバイスノード境界に対する再現可能な証明を含みます。

公開状況 — 2026年10月。 Apple は 2026年9月14日に、macOS Sequoia 15.8、macOS Tahoe 26.7、macOS Golden Gate 27 において両方の脆弱性を修正しました。このリポジトリの再現プログラムは、意図的に未パッチの Mac を含む、隔離された許可済みのラボ環境でのみ使用することを目的としています。

検証状況。 含まれているオンホストバリデータは、影響を受ける macOS 26.4(ビルド 25E246、arm64)のラボホスト上で正常に実行されました。ヘルパーディスパッチテスト、完全なループバック NFS 配信チェーン、パス名/資格情報プローブ、Gatekeeper 差分、および nodev/デバイス境界テストはすべて PASS を返しました。Gatekeeper テストでは、アセスメントが有効化されていました。アプリは構造的に有効でしたが、Team ID を持たないアドホック署名でした。明示的な spctl アセスメントはそれを拒否しました。NFS マウントには noexec も検疫も設定されていませんでした。そして LaunchServices は承認ステップなしでそれを実行しました。各バリデータは cleanup_result=PASS も返し、独立した実行後チェックにより、一時ディレクトリのレコード、マウント、ファイル、および /etc/exports の変更が削除または復元されたことが確認されました。Python ハーネスは、実際の automount/Apple 属性スキーマを持つ一時的な OpenLDAP サーバーに対して別途実行されました。automountKey と apple-user-homeurl の両方のルートが、作成/読み戻し/タイムアウト/復元のチェックに合格しました。これらの観察は、その影響を受けるビルドと含まれているハーネスを特徴づけるものであり、パッチ適用済みリリースに関する主張ではありません。

研究クレジット: Mr.Gedik(@h4ck2s3c)。CVE-2026-84568 は Apple のアドバイザリにおいて Mr.Gedik に公にクレジットされ、CVE-2026-84570 も Mr.Gedik にクレジットされています。

スコープ

これは研究の公開版です。Apple が公開したアドバイザリ、Apple のオープンソースコード、および含まれている再現可能なラボ資料によって裏付けられた情報のみを含みます。非公開のケース識別子、非公開の通信、非公開の成果物、および無関係な研究は意図的に除外されています。

2つの CVE は攻撃対象領域を共有していますが、独立した根本原因を表しています:

CVEApple が公開した影響クライアント側の境界
CVE-2026-84568ネットワークディレクトリの攻撃者が root 権限で任意のコードを実行する可能性があるディレクトリによって制御された fstype が、automountd によって選択される実行可能パスに影響を与えた
CVE-2026-84570アプリが Gatekeeper チェックをバイパスする可能性があるディレクトリによって制御された NFS automount が、アプリケーションの来歴とデバイスノードポリシーの両方の境界を越えた

Apple は両方の問題を、macOS Golden Gate 27、macOS Tahoe 26.7、および macOS Sequoia 15.8 のセキュリティコンテンツにおいて autofs の下に記載しています。

エグゼクティブサマリー

macOS の automount マップは実行可能な制御データです。マップの行はファイルシステムタイプを選択し、マウントオプションを提供し、リソースを識別し、最終的に特権マウントディスパッチに影響を与えます。2026年9月のアップデート以前は、2つの検証の失敗により、ディレクトリから提供されたデータがクライアント上のセキュリティ境界を越えることが可能でした:

  1. 細工された fstype が、意図された /sbin/mount_<type> ヘルパー名前空間を脱出し、NFS 経由で配信された実行可能ファイルに解決される可能性がありました。
  2. 細工された NFS オプションセットが、期待される nodev ポリシーを無効化する可能性がありました。結果として生じたネットワークマウントには noexec も検疫ポリシーも設定されていなかったため、明示的な Gatekeeper アセスメントに失敗したアプリでも、そこから起動することができました。

これらは関連する観察であり、互換可能なメカニズムではありません。nodev は特殊デバイス vnode が解釈されるかどうかを制御しますが、Gatekeeper を実装するものではありません。noexec は VFS 境界での実行を制御します。Gatekeeper はアプリケーションの信頼性と来歴を別途評価します。CVE-2026-84570 のバリデータは各境界を独立して報告するため、nodev フラグの欠如がそれ自体で Gatekeeper バイパスの証明として提示されることは決してありません。

ディレクトリへの書き込みアクセスは入口の前提条件であり、結果として得られる権限ではない。automountやユーザーホームの属性を変更することは、利用する各Mac上で実行可能なパス名を選択することや、NFSマウントのカーネルポリシーを弱めることと同等ではない。これらの変換はクライアント上で発生する。

精度に関する注記

  • 自己完結型のCVE-2026-84568ラボチェーンは2つのディレクトリ値を使用する。一方は短いNFSパスを配信し、もう一方はヘルパーのディスパッチを配信されたバイナリへリダイレクトする。
  • レコードを作成しても、それ自体では実行されない。該当キーのautofsルックアップが依然として必要である。
  • 同梱のPythonハーネスはそのルックアップを一切実行しない。承認されたラボ状態をインストールし、独立したクライアント活動によって生成される証明イベントをパッシブに待機する。
  • ルックアップの資格情報が重要である。汎用ヘルパーの子プロセスはトリガーとなったUIDに関連付けられるため、Appleが公開したroot権限エンドポイントを実証するには、root発信のルックアップが必要である。
  • パス名解決は特権デーモンのコンテキストでテストする必要がある。検証済みホストでは、rootによる構築済みパスへのルックアップは成功したが、非特権アカウントによる同じ直接のstat()はENOTDIRを返した。したがって、非特権でのrealpath()やstat()の結果は、ここではautomountdの有効な代理とはならない。
  • CVE-2026-84568は、CVE-2026-84570で実証されたnodevバイパスを必要としない。完全な84568チェーンは、その配信マウントがnodevとnosuidを保持したまま成功した。
  • Gatekeeperの証明は、現代のコンパイラ出力を文字通り未署名とラベル付けするものではない。バリデータは、Team IDも公証も持たない、構造的に有効なアドホック署名済みアプリを作成する。これで、ローダーが有効とみなすコードと、デフォルトのGatekeeperポリシー下で信頼されるソフトウェアとを区別するのに十分である。
  • CVE-2026-84570単独では、アプリを自動的に実行させることはない。そのバリデータはLaunchServicesを明示的に呼び出す。CVE-2026-84568は、ディスパッチキーがルックアップされた際に配信されたバイナリを実行する、別個のディスパッチプリミティブを提供する。
  • 監視のタイムアウトは結論を出せない。それは、選択した間隔内に一致する証明イベントが到着しなかったことを示すのであって、対象がパッチ済みであることを示すものではない。

ディレクトリデータから特権ディスパッチへ

デフォルトのautomount設定は、/home配下にディレクトリに裏付けられた入力を公開する:

/etc/auto_master:  /home  auto_home  -nobrowse,hidefromfinder
/etc/auto_home:    +auto_home
/etc/auto_home:    +/usr/libexec/od_user_homes

最初のインクルードはautomountレコードを解決します。executable-mapインクルードはod_user_homesを呼び出し、ユーザーホーム情報を解決してマップ行を出力します。どちらの経路もautomountパーサーに収束します。

公開ハーネスは両方のディレクトリ形式を明示的に保持しています:

経路ディレクトリ入力結果として得られるautofsキー/値
automountRDNがautomountMapName=auto_homeマップ配下のautomountKey=<key>であるRFC 2307エントリ。値はautomountInformation内<key> → 生のマップ行
userhome既存のユーザーエントリ。値はapple-user-homeurl内ユーザーのレコード名キー → <home_dir><url>…</url></home_dir>でラップされたマップ行

この区別は運用上は重要ですが、脆弱なシンクにおいては重要ではありません。どちらの値も最終的にMac上でパースされるファイルシステムタイプとマウント引数に影響を与えるからです。

flowchart LR
    DS["LDAP / Open Directory"]
    AM["AutomountInformation"]
    UH["User home attribute"]
    GM["getmapent_od()"]
    OUH["od_user_homes"]
    MAP["Automount map line"]
    PARSE["parse_entry() / set_mapent_opts()"]
    TYPE{"fstype"}
    NFS["Dedicated NFS path"]
    GENERIC["Generic helper path"]
    EXEC["run_mount_cmd()"]

    DS --> AM --> GM --> MAP
    DS --> UH --> OUH --> MAP
    MAP --> PARSE --> TYPE
    TYPE -->|exactly nfs| NFS
    TYPE -->|another value| GENERIC --> EXEC

関連する公開ソースパスには以下が含まれます:

  • od_user_homes.c:ディレクトリのユーザーレコードを解決し、ホームURLを出力します。
  • ns_od.c:ディレクトリのautomountデータを取得します。
  • autod_parse.c:fstypeとマウントオプションを解析します。
  • autod_mount.c:マウントヘルパーを選択して起動します。

Appleが公開しているautofs-322ツリーは、修正前のコンテキストとして有用です。影響を受けるビルドでの実行時の挙動が依然として決定的な証拠であり、本記事は公開リポジトリに2026年9月の最終パッチ差分が含まれていると主張するものではありません。

マウントのセキュリティモデルは階層化されている

修正前のデフォルトのautofs.confはAUTOMOUNTD_MNTOPTS=nosuid,nodevを提供します。これらはVFSのマウントポリシーであり、Gatekeeperの同義語ではありません:

レイヤー意図される判定影響を受けるビルドでの観察結果
nosuidマウントからのset-user-ID/set-group-IDによる権限昇格を無視する両方のバリデータで引き続き存在していた
nodevマウントからのキャラクタ/ブロックスペシャルファイルを解釈しない通常の84568配信マウントでは存在していたが、84570テストでは細工されたdevオプションによって削除された
noexecマウントされたファイルシステムからの実行を拒否するテストした両方のNFS automountには存在しなかった
ファイル単位の隔離com.apple.quarantineにダウンロードファイルの来歴を保持するマウントされた実証用アプリとバイナリには存在しなかった
マウントの隔離ファイルシステムにXNUのMNT_QUARANTINEポリシービットを付与するテストしたNFS automountには存在しなかった
Gatekeeper評価アプリが起動を信頼できるかどうかを判定するグローバルに有効化されていた。明示的な評価は実証用アプリを拒否したが、LaunchServicesは依然としてNFSからそれを実行した

Appleの公開XNUヘッダーは、MNT_NOEXEC、MNT_NODEV、MNT_QUARANTINEを別個のフラグとして定義しています。これらのレイヤーを分離しておくことは重要です。84570の証拠はポリシー障害の連鎖であり、1つのフラグが他のすべての役割を果たしているわけではありません。

CVE-2026-84568: fstypeが実行可能なパス名になる

根本原因

影響を受けるヘルパーディスパッチロジックは、解析されたファイルシステムタイプのトークンをパス名の一部として扱っていました。簡略化した形では次のようになります:

path = "/sbin/mount_" + fstype;
stat(path);
posix_spawn(path, ...);

欠けていた境界は、ファイルシステム識別子と信頼済みヘルパーのベース名との間にありました。/ と .. を含む値は、意図されたヘルパーの名前空間から抜け出す可能性がありました。

このリポジトリで使用されているコンパクトなテスト値は次のとおりです:

fstype:      nfs/../../../home/c8a/p
constructed: /sbin/mount_nfs/../../../home/c8a/p
target:      /home/c8a/p

値は意図的に正確に nfs にはなっていないため、専用の NFS 分岐ではなく汎用ヘルパーディスパッチに到達します。その最初のコンポーネントは、トラバーサルコンポーネントが処理される前に、依然として実際の mount_nfs ヘルパーを指しています。

決定的な操作は、特権ヘルパーディスパッチパスによって実行される stat() と posix_spawn() です。リポジトリの path_resolution_probe.c は、実際に NFS マウントされたプローブバイナリに対して両方の操作を繰り返します。/bin/echo や他のローカルバイナリで代用することはありません。これは重要です。影響を受けたホストでは、root と標準ユーザーで直接ルックアップの結果が異なっていたためです。

FSLEN の制約

修正前のパーサーは fstype に 32 バイトのバッファを使用しており、最大で 31 バイトの非 NUL バイトしか残りません。ASCII のマップキーでは、その予算は次のとおりです:

ツールをダウンロード