
CVE-2026-84568 のリバースエンジニアリングノートと動作する PoC。これは macOS の automountd における信頼境界違反で、localhost または被害者自身のホスト名からのマウントを可能にする。
| 項目 | 値 |
|---|
| CVE | CVE-2026-84568 |
| コンポーネント | autofs / automountd |
| 影響を受けるバージョン | macOS Tahoe 26.6 以前 |
| 修正バージョン | macOS Tahoe 26.7、macOS Golden Gate 27、macOS Sequoia 15.8 |
| アドバイザリの影響 | 「ネットワークディレクトリサーバを制御する攻撃者が、root 権限で任意のコードを実行できる可能性があります。」 |
| 報告者 | Turkish Technology の Mr.Gedik (@h4ck2s3c) |
CVE-2026-84568 に関する Apple のアドバイザリは、影響とパッチ バージョンを文書化している。しかし技術的メカニズムは文書化して いない:
執筆時点で公開された技術的な記事は見つからなかった。この
リポジトリは、automountd_26.6 と automountd_27 の独立したリバースエンジニアリング
分析、および根底にある信頼境界違反の実用的な PoC によって、そのギャップを埋める。
これは発見の主張ではない。 この CVE は Mr.Gedik によって報告され、 Apple によって修正された。ここでの貢献は技術分析と 再現である。
automountd は、設定されたディレクトリサービス
(LDAP、NIS、OpenDirectory) から automount マップを取得する。脆弱なバージョン (26.6 以前) では、
automountd はマップエントリのホストコンポーネントがローカルマシンに
解決されるかどうかを検証していなかった。
したがって、悪意のあるディレクトリサーバは、マウントソースが以下のいずれかである マップエントリを提供できた:
localhost<hostname>.local)127.0.0.1 を含む任意のローカル IP アドレス被害者はその後、攻撃者が制御するマウントポイントで自分自身からマウント することになる。
パッチが当てられたバージョン (26.7 / 27) は、
sym.func.100005bd8 にホスト名チェックを追加し、上記のいずれかに一致するエントリを拒否する。
automountd_26.6 と automountd_27 の間の sym.func.100005bd8 の
逆アセンブリ差分 — docs/PATCH_DIFF.md を参照"localhost" に対する strncasecmp、
gethostname()、SCDynamicStoreCopyLocalHostName +
".local"、およびすべてのローカル IP を列挙する getifaddrs / getipnodebyaddr ループparse_nfs → mapline_to_mapent → asprintf("%s/mount_%s", "/sbin", fstype) を通じた
fstype フィールドのトレース —
このフィールドはプログラムパスを構築する前に検証されないwebdavfs_agent の XML パーサーの SAX コールバック分析 —
characters コールバックは明示的な長さチェック付きで __memcpy_chk を使用しており、オーバーフローはないod_process_record_attributes の分析 — OpenDirectory
レコードパーサーは全体を通して CoreFoundation API を使用しており、固定サイズ
バッファはないmount_nfs、mount_smbfs、mount_url、
およびすべての NetFSPlugins/* バンドルをシェル実行について確認したが、いずれも
見つからなかった完全な記事は docs/ANALYSIS.md を、アドレスとログサンプルは
docs/ARTIFACTS.md を参照。
poc.sh — 単一ファイルの攻撃者側セットアップ。悪意のある auto_master / auto_evil マップを持つ LDAP
サーバと、アクセス証明マーカー付きの NFS
エクスポートを起動する。被害者の automountd がマップを取得すると、
攻撃者が制御するパスに自身の NFS エクスポートをマウントする。auto_master / auto_evil マップを提供する悪意のある LDAP サーバautomountd がネットワーク経由でマップを取得すること127.0.0.1 であることApple のアドバイザリにある「root 権限での任意のコード実行」という影響は、
この分析でテストされたパスを通じては到達可能ではない。
完全なリストについては docs/ANALYSIS.md の「Paths tested and ruled out」セクションを参照。
実証された影響は信頼境界違反そのものである: 被害者は 拒否されるべきソースからマウントしてしまう。
poc.sh 攻撃者側セットアップ (単一ファイル)
docs/
ANALYSIS.md 完全なリバースエンジニアリング記事
PATCH_DIFF.md 26.6 と 27 の間の sym.func.100005bd8 の差分
ARTIFACTS.md アドレスとログサンプル
README.md このファイル
LICENSE
4 ファイル、2 ディレクトリ。それ以外は何もない。
brew install openldap)slapd.conf で定義: database mdb と suffix "dc=evil,dc=local"nfsd) — macOS に同梱slapd、nfsd、/etc/exports 用)automountd)/etc/auto_master に +auto_master が存在することnfsd が動作し、ディレクトリをエクスポートしていることマウントを成功させるには、被害者で NFS サーバが動作している必要がある。この
CVE はエクスポートの配信ではなく、ローカルホストエントリの受け入れに関するものである。
被害者が nfsd を実行していない場合、マウントは
NFS server 127.0.0.1 not responding で失敗する — それでも
automountd がエントリを受け入れたことは実証される。
./poc.sh <ATTACKER_IP>
<ATTACKER_IP> は、被害者から見た攻撃者の IP に置き換える。
sudo automount -vc
ls /System/Volumes/Data/mnt/evil/evil/
cat /System/Volumes/Data/mnt/evil/evil/proof.txt
ファイル proof.txt がマウント経由で読み取り可能である。mount 出力の
マウントソースは 127.0.0.1:<export_dir> である:
127.0.0.1:/tmp/nfsroot on /System/Volumes/Data/mnt/evil/evil (nfs, nodev, nosuid, automounted, nobrowse)
nodev と nosuid の存在は、カーネルの NFS マウント
デフォルトと mount_nfs 自身のオプション処理を反映したものであり、
automountd によるものではない。完全な内訳は docs/ANALYSIS.md を参照。
パッチが当てられたシステム (26.7 / 27) では、同じマップエントリが
マウント試行の前に拒否される。sym.func.100005bd8 の逆アセンブリ比較については
docs/PATCH_DIFF.md を参照。
パッチが当てられたホストで確認するには:
# 同じマップエントリを提供し、パッチが当てられた被害者上で:
sudo automount -vc
ls /System/Volumes/Data/mnt/evil/evil/
期待される結果: マウントポイントは作成されず、mount 出力に
エントリも現れない。sym.func.100005bd8 のチェックは、
ホストが 127.0.0.1、localhost、またはローカルホスト名の場合にエントリを拒否する。
fstype インジェクション (別の所見)分析中に、別の多層防御上の弱点が見つかった:
sym.func.1000086f4 (run_mount_cmd) は、マップエントリの
fstype フィールドを検証せずに asprintf("%s/mount_%s", "/sbin", fstype) を介して
プログラムパスを構築する。
fstype 内のパストラバーサルシーケンスが asprintf 呼び出しに到達する:
automountd: Can't stat mount program /sbin/mount_../../../../../../tmp/evil_prog: No such file or directory
標準の macOS インストールでは、/sbin/mount_.. が存在しないため、
結果のパスは実行可能ファイルに解決されない。インジェクション
は実在するが、パス解決によってブロックされる。これは、
/sbin 配下に書き込み可能なパスが存在する場合、またはディレクトリシンボリックリンク
mount_<X> が作成された場合にのみ、悪用可能となる — いずれも標準の macOS では成立しない。
これは CVE-2026-84568 の一部ではなく、別の所見として
文書化されている。詳細は docs/ANALYSIS.md を参照。
このリポジトリは防御的セキュリティ研究および 教育のみを目的として提供されている。
MIT。LICENSE を参照。