Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/keraattin/cve-2026-35517
脆弱性スキャナーエクスプロイト情報収集ウェブセキュリティネットワークセキュリティペネトレーションテスト
GitHubkeraattin/cve-2026-35517

CVE-2026-35517

Pi-hole FTLDNS RCE(CVE-2026-35517)の改行インジェクションを介した検出スクリプト。バージョンベースの脆弱性評価のためのPythonスキャナーとNmap NSEスクリプトを含む。

リポジトリを見る
4ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2026-35517 - Pi-hole FTLDNS 改行インジェクションによるリモートコード実行

CVE-2026-35517 CVSS 8.8 CWE-93 FTLDNS 6.0-6.5

TL;DR

Pi-hole の FTLDNS エンジン(バージョン 6.0 から 6.5)における リモートコード実行 の脆弱性により、認証済みの攻撃者が dns.upstreams API パラメータに 改行文字(\n)を埋め込むことで、任意の dnsmasq 設定ディレクティブを注入できます。dnsmasq はシェルコマンドを実行するディレクティブをサポートしているため、この改行インジェクションは ホストシステム上での完全なコマンド実行 に直接つながります。

これは単一のバグではなく、5つの異なる設定パラメータ に影響を与えるインジェクションの一種であり、すべて FTL v6.6 でまとめて修正されています。


目次

  • クイックファクト
  • Pi-hole FTLDNS とは?
  • 脆弱性の詳細
    • アーキテクチャの理解
    • インジェクションポイント
    • 改行からシェルへ — キルチェーン
    • 全ファミリー — 5つのインジェクションベクター
  • 影響分析
  • 影響を受けるバージョン
  • 誰がリスクにさらされるか?
  • 検出
    • Python スキャナー
    • Nmap NSE スクリプト
    • 手動バージョン確認
  • 侵害の指標
  • 修復
  • 参考情報
  • 著者

  • クイックファクト

    フィールド詳細
    CVE IDCVE-2026-35517
    ベンダーPi-hole Project
    製品FTLDNS (pihole-FTL)
    影響を受けるバージョン6.0 から < 6.6
    CVSS v3.18.8 (High)
    CWECWE-93 — CRLF シーケンスの不適切な無害化
    攻撃ベクトルネットワーク
    認証必須(Pi-hole 管理者/API アクセス)
    ユーザー操作なし
    公開日2026年4月7日
    修正バージョンFTL v6.6(2026年4月3日リリース)
    発見者T0X1Cx
    関連アドバイザリGHSA-23w8-7333-p9fj, GHSA-wxhv-w77q-6qwp, GHSA-28g5-gg88-wh5m, GHSA-fqv2-qhfh-ghcj, GHSA-vfmq-jrx3-wv3c

    Pi-hole FTLDNS とは?

    Pi-hole は、世界で最も広く展開されている DNS シンクホールの1つです。ネットワーク上に配置され、DNS クエリを処理し、ブラウザに到達する前に DNS レベルで広告やトラッカーをブロックします。アパートの単一 Raspberry Pi セットアップから、数千台のデバイスを保護するエンタープライズ展開まで、あらゆる場所で使用されています。

    FTLDNS(Faster Than Light DNS)は Pi-hole のコアエンジンです。これは、よく知られた DNS および DHCP サーバーである dnsmasq をベースにしたカスタムフォーク/ラッパーです。FTLDNS は以下を処理します:

    • DNS クエリの解決とキャッシュ
    • DNS レベルのブロッキング(Pi-hole のコア機能)
    • DHCP サーバー機能
    • クエリのロギングと統計
    • Web インターフェースが通信する API

    ここが重要なポイントです:FTLDNS は API を通じてユーザーが指定した設定から dnsmasq 設定ファイルを生成します。Pi-hole 管理パネルでアップストリーム DNS サーバーを変更すると、FTLDNS はその値を dnsmasq 設定ファイルに書き込み、サービスを再起動します。この書き込みパスに脆弱性が存在します。


    脆弱性の詳細

    アーキテクチャの理解

    root@kitploit:~
    +------------------+            +------------------+               +------------------+
    |   管理パネル     |  API/Web   |  FTLDNS エンジン  | 設定書き込み   |    dnsmasq       |
    |    (Web UI)      | ---------> |  (pihole-FTL)    | ------------> |   (DNS/DHCP)     |
    +------------------+            +------------------+               +------------------+
                                            |                                   |
                                      設定を読み取り、                    設定を読み取り、
                                      設定ファイルを                       DNS/DHCP を
                                      ディスクに書き込む                   ネットワークに提供
    

    管理者が Pi-hole Web UI または API を通じてアップストリーム DNS サーバーを変更すると、フローは次のようになります:

    1. Web UI が新しいアップストリーム DNS 値を FTLDNS API にリクエストを送信
    2. FTLDNS が入力を検証(むしろ、適切に検証できていない)
    3. FTLDNS が値を dnsmasq 設定ディレクティブに書き込む
    4. dnsmasq が再起動され、新しい設定を読み込む

    インジェクションポイント

    dns.upstreams パラメータは、8.8.8.8 や 1.1.1.1 のような DNS サーバーアドレスを受け入れることを意図しています。FTLDNS はこれらを dnsmasq 設定に server= ディレクティブとして書き込みます:

    root@kitploit:~
    # 通常の入力: "8.8.8.8"
    # 生成されるもの:
    server=8.8.8.8
    

    問題はここにあります:FTLDNS は入力内の改行文字をサニタイズしません。攻撃者は \n を注入して、意図された server= ディレクティブから抜け出し、完全に新しい設定行を注入できます:

    root@kitploit:~
    # 悪意のある入力: "8.8.8.8\ndhcp-option=6,evil.dns.server"
    # 生成されるもの:
    server=8.8.8.8
    dhcp-option=6,evil.dns.server
    

    これだけでも懸念事項です(DHCP オプション注入による DNS ハイジャック)。しかし、さらに悪化します。

    改行からシェルへ — キルチェーン

    dnsmasq は外部スクリプトを参照できる dhcp-option と呼ばれる設定ディレクティブをサポートしており、さらに重要なことに、特定のシナリオでコマンドを実行できるいくつかのディレクティブをサポートしています。悪用チェーンは次のようになります:

    root@kitploit:~
    ステップ 1: 攻撃者が Pi-hole に認証する
            (デフォルト認証情報、弱いパスワード、CSRF、侵害されたセッション)
    
    ステップ 2: 攻撃者が dns.upstreams を更新する API リクエストを送信:
            
            POST /api/dns/upstream
            {
              "upstreams": ["8.8.8.8\n<悪意のある dnsmasq ディレクティブ>"]
            }
    
    ステップ 3: FTLDNS が改行をサニタイズせずに値を dnsmasq 設定ファイルに書き込む
    
    ステップ 4: 注入された dnsmasq ディレクティブが正当な設定オプションとして解析される
    
    ステップ 5: 注入されたディレクティブに応じて、攻撃者は以下を達成:
            - DNS ハイジャック(すべての DNS クエリをリダイレクト)
            - DHCP ポイズニング(クライアントに悪意のある設定をプッシュ)
            - dnsmasq のスクリプト機能によるコマンド実行
            - 任意のパスへのファイル書き込み
    

    重要な洞察は、これは dnsmasq の脆弱性を悪用するものではないということです。dnsmasq は設計どおりに動作しています。脆弱性は、FTLDNS が信頼できない入力を設定ファイルに混入させ、設定管理 API を任意の設定インジェクションポイントに変えてしまうことにあります。

    全ファミリー — 5つのインジェクションベクター

    研究者(T0X1Cx)は、同じ改行インジェクションパターンが 5つの異なる FTLDNS 設定パラメータ に影響を与えることを発見しました。これは体系的な問題です — コード全体で入力サニタイズが欠如していました:

    アドバイザリパラメータ制御するもの
    GHSA-23w8-7333-p9fjdns.upstreamsアップストリーム DNS サーバー
    GHSA-wxhv-w77q-6qwpdns.hostRecordカスタム DNS ホストレコード
    GHSA-28g5-gg88-wh5mdns.cnameRecordsCNAME レコードマッピング
    GHSA-fqv2-qhfh-ghcjdhcp.leaseTimeDHCP リース期間
    GHSA-vfmq-jrx3-wv3cdhcp.hosts静的 DHCP ホスト割り当て

    これらの各パラメータは dnsmasq 設定ファイルに書き込まれ、それぞれが改行文字のサニタイズに失敗していました。FTL v6.6 の修正では、すべての設定パラメータで改行文字(およびその他の制御文字)を拒否する適切な入力検証が追加されました。


    影響分析

    Pi-hole ホスト上:

    • FTLDNS プロセスの権限(通常は root または pihole ユーザー)での完全なコマンド実行
    • Pi-hole は専用デバイス(Raspberry Pi)や特権コンテナとして実行されることが多いため、多くの場合 root アクセスを意味します
    • ホストファイルシステムへのファイル読み取り/書き込みアクセス
    • cron ジョブ、SSH キー、または変更されたシステムファイルによる永続化

    ネットワーク上(下流への影響):

    • DNS ハイジャック — すべての DNS クエリを攻撃者が制御するサーバーにリダイレクト
    • DHCP ポイズニング — すべての DHCP クライアントに悪意のある DNS、ゲートウェイ、または NTP 設定をプッシュ
    • 中間者攻撃のポジショニング — DNS を制御することで、攻撃者は任意のドメインのトラフィックをリダイレクト可能
    • 認証情報の収集 — 認証エンドポイントをフィッシングサーバーにリダイレクト
    • マルウェア配布 — ソフトウェア更新ドメインをリダイレクトして悪意のあるペイロードを配信

    リスク増幅要因:

    • Pi-hole はネットワーク上の 唯一の DNS サーバー であることが多く、侵害されるとすべてのデバイスの名前解決を制御されます
    • 多くの Pi-hole インストールは デフォルトまたは弱い管理者パスワード を使用しています
    • Pi-hole インスタンスは管理者だけでなく、ローカルネットワーク全体に公開 されていることが頻繁にあります
    • Pi-hole Web インターフェースへの CSRF 攻撃により、直接認証なしで悪用が引き起こされる可能性があります

    影響を受けるバージョン

    バージョンステータス
    FTLDNS 6.6+修正済み
    FTLDNS 6.0 – 6.5脆弱
    FTLDNS 5.x 以前影響なし(異なる API アーキテクチャ)

    バージョンを確認するには:

    root@kitploit:~
    pihole -v
    # または
    pihole-FTL --version
    

    誰がリスクにさらされるか?

    高リスク:

    • 信頼できないネットワークセグメントからアクセス可能な Pi-hole インスタンス
    • デフォルトまたは弱い管理者パスワードを使用している展開
    • インターネットに公開されている Pi-hole(Shodan で驚くほど一般的)
    • 複数のユーザーが同じネットワークにアクセスする共有ホスティング環境

    中程度のリスク:

    • 強力なパスワードを持つ適切にセグメント化されたホームネットワーク内の Pi-hole インスタンス
    • 多要素認証を備えた VPN の背後にある展開

    低リスク(ただしパッチ適用は必要):

    • エアギャップまたは完全に分離された Pi-hole インスタンス
    • 読み取り専用または API 無効の展開

    検出

    Python スキャナー

    Python スクリプトは、バージョン分析を通じて脆弱な Pi-hole インスタンスを検出します。

    仕組み:

    1. フィンガープリンティング — 管理インターフェースの指標(ページコンテンツ、ヘッダー)を通じて Pi-hole を識別
    2. API バージョンクエリ — Pi-hole v5 と v6 の両方の API エンドポイントに FTL バージョン情報を照会
    3. バージョン比較 — FTL バージョン文字列を解析し、脆弱な範囲(6.0 ≤ v < 6.6)と照合
    4. 関連 CVE — 脆弱な場合、関連する5つの改行インジェクションアドバイザリすべてにフラグを立てる

    インジェクションペイロードは送信されません。テストは完全に読み取り専用で安全です。

    使用方法:

    root@kitploit:~
    # 依存関係のインストール
    pip install -r requirements.txt
    
    # 単一ターゲット(HTTP、デフォルトポート 80)
    python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1
    
    # カスタムポート
    python CVE-2026-35517_PiHole_FTLDNS_detector.py -t pi.hole -p 8080
    
    # HTTPS モード(ポート 443 に自動切り替え)
    python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 10.0.0.1 --https
    
    # ファイルからの一括スキャン
    python CVE-2026-35517_PiHole_FTLDNS_detector.py -f targets.txt
    
    # JSON 出力をファイルに保存
    python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1 --json -o results.json
    
    # タイムアウトの増加
    python CVE-2026-35517_PiHole_FTLDNS_detector.py -t 192.168.1.1 --timeout 20
    

    オプション:

    フラグ説明デフォルト
    -t, --targetターゲット IP またはホスト名—
    -f, --fileターゲットを含むファイル(1行に1つ、# コメント対応)—
    -p, --portターゲットポート80
    --httpsHTTPS を使用(ポートが 80 の場合、ポート 443 に自動切り替え)オフ
    --timeout接続タイムアウト(秒)10
    --jsonJSON 形式で出力オフ
    -o, --output結果をファイルに保存—

    出力例:

    root@kitploit:~
    ╔══════════════════════════════════════════════════════════════╗
    ║  CVE-2026-35517 - Pi-hole FTLDNS RCE Detector                ║
    ║  Newline Injection in dns.upstreams → Command Execution      ║
    ║  CVSS: 8.8 (High) | Affects: FTLDNS 6.0 - 6.5                ║
    ╚══════════════════════════════════════════════════════════════╝
    
    [*] Scanning 192.168.1.1:80...
    
    Target: 192.168.1.1:80
    ============================================================
      [*] Pi-hole detected
          Admin interface: Accessible
          API accessible:  Yes
          FTL version:     v6.4
          Core version:    v6.3
          Web version:     v6.4
    
      CVE-2026-35517 Assessment:
        [VULNERABLE] FTLDNS 6.4 is within the vulnerable range (6.0 - 6.5).
        Upgrade to FTL v6.6 or later immediately.
    
      Related Vulnerabilities (also patched in FTL v6.6):
        [-] GHSA-wxhv-w77q-6qwp: RCE via dns.hostRecord Newline Injection
        [-] GHSA-28g5-gg88-wh5m: RCE via dns.cnameRecords Newline Injection
        [-] GHSA-fqv2-qhfh-ghcj: RCE via dhcp.leaseTime Newline Injection
        [-] GHSA-vfmq-jrx3-wv3c: RCE via dhcp.hosts Newline Injection
    
      Remediation:
        1. Upgrade Pi-hole FTL to version 6.6 or later
        2. Run: pihole -up
        3. Verify with: pihole -v
        4. Review API access controls and authentication settings
        5. Check logs for signs of exploitation (unusual DNS config changes)
    

    Nmap NSE スクリプト

    root@kitploit:~
    # NSE スクリプトのインストール
    sudo cp CVE-2026-35517_PiHole_FTLDNS.nse /usr/share/nmap/scripts/
    sudo nmap --script-updatedb
    
    # 基本スキャン
    nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS <target>
    
    # 一般的な Pi-hole ポートのスキャン
    nmap -p 80,443,8080,4711 --script CVE-2026-35517_PiHole_FTLDNS <target>
    
    # サブネットスキャン — ネットワーク上のすべての Pi-hole インスタンスを検出
    nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS 192.168.1.0/24
    
    # バージョン検出と組み合わせ
    nmap -sV -p 80,443 --script CVE-2026-35517_PiHole_FTLDNS <target>
    
    # ファイルからターゲットをスキャン
    nmap -p 80 --script CVE-2026-35517_PiHole_FTLDNS -iL targets.txt
    

    Nmap 出力例:

    root@kitploit:~
    PORT   STATE SERVICE
    80/tcp open  http
    | CVE-2026-35517_PiHole_FTLDNS:
    |   VULNERABLE:
    |   Pi-hole FTLDNS RCE via Upstream DNS Configuration
    |     State: VULNERABLE
    |     IDs:  CVE:CVE-2026-35517
    |     Risk factor: High (CVSS: 8.8)
    |     Disclosure date: 2026-04-07
    |     Extra information:
    |       FTL Version: v6.4
    |       Core Version: v6.3
    |       Web Version: v6.4
    |       Related advisories also fixed in FTL v6.6:
    |         GHSA-wxhv-w77q-6qwp (dns.hostRecord injection)
    |         GHSA-28g5-gg88-wh5m (dns.cnameRecords injection)
    |         GHSA-fqv2-qhfh-ghcj (dhcp.leaseTime injection)
    |         GHSA-vfmq-jrx3-wv3c (dhcp.hosts injection)
    |       Remediation: Upgrade to Pi-hole FTL v6.6+ (pihole -up)
    |     References:
    |       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-35517
    |_      https://github.com/pi-hole/FTL/security/advisories/GHSA-23w8-7333-p9fj
    

    手動バージョン確認

    Pi-hole ホストへの SSH アクセスがある場合:

    root@kitploit:~
    # FTL バージョンの確認
    pihole-FTL --version
    
    # または Pi-hole CLI 経由
    pihole -v
    
    # API 経由で確認(v6)
    curl -s http://pi.hole/api/info/version | python3 -m json.tool
    
    # API 経由で確認(v5)
    curl -s http://pi.hole/admin/api.php?versions | python3 -m json.tool
    

    FTL バージョンが 6.0 から 6.5(両端を含む)の間にある場合、脆弱です。


    侵害の指標

    確認すべき項目:

    • 異常な dnsmasq 設定エントリ — /etc/dnsmasq.d/ と /etc/pihole/ に予期しないディレクティブがないか確認
    • 変更されたアップストリーム DNS 設定 — 設定されたアップストリームサーバーが変更されていないか確認
    • 予期しない API 呼び出し — Pi-hole のクエリログと API アクセスログで設定変更リクエストを確認
    • 異常な DNS 動作 — クライアントが予期しない IP アドレスにドメインを解決している
    • 新しい cron ジョブまたは SSH キー — コマンド実行によってホストが侵害された場合
    • プロセスの異常 — dnsmasq または pihole-FTL によって生成された予期しない子プロセス

    調査コマンド:

    root@kitploit:~
    # 注入された行がないか dnsmasq 設定を確認
    grep -r "dhcp-option\|addn-hosts\|conf-file\|log-facility" /etc/dnsmasq.d/
    
    # 最近の設定変更を確認
    find /etc/pihole /etc/dnsmasq.d -mtime -7 -ls
    
    # Pi-hole のデバッグログを確認
    pihole -d
    
    # 異常がないか実行中のプロセスを確認
    ps aux | grep -E "dnsmasq|pihole"
    
    # 永続化のために crontab を確認
    crontab -l
    cat /etc/crontab
    ls -la /etc/cron.d/
    

    修復

    即時対応 — 今すぐアップグレード:

    root@kitploit:~
    # Pi-hole の更新(FTL、Web、Core を含む)
    pihole -up
    
    # 更新の確認
    pihole -v
    # FTL バージョンが >= 6.6 である必要があります
    

    すぐにアップグレードできない場合:

    1. API アクセスを制限 — 信頼できる IP からのみ API 接続を受け付けるように Pi-hole を設定
    2. 管理者パスワードを変更 — 強力で一意のパスワードを使用:pihole -a -p
    3. ネットワーク分離 — Pi-hole 管理インターフェースが管理 VLAN からのみアクセス可能であることを確認
    4. リモート API を無効化 — ローカル Web UI のみを使用する場合、API を localhost に制限

    パッチ適用後の対応:

    1. DNS 設定の監査 — 注入されたディレクティブがないかすべての dnsmasq 設定ファイルを確認
    2. アップストリームサーバーの確認 — DNS アップストリーム設定が正しいことを確認
    3. 永続化の確認 — 不正な cron ジョブ、SSH キー、または変更されたシステムファイルがないか確認
    4. DHCP リースの確認 — DHCP が Pi-hole で管理されている場合、リース設定を確認
    5. DNS 動作の監視 — 数日間にわたって異常な解決パターンを監視

    参考情報

    • GitHub Security Advisory — GHSA-23w8-7333-p9fj (dns.upstreams)
    • GitHub Security Advisory — GHSA-wxhv-w77q-6qwp (dns.hostRecord)
    • GitHub Security Advisory — GHSA-28g5-gg88-wh5m (dns.cnameRecords)
    • GitHub Security Advisory — GHSA-fqv2-qhfh-ghcj (dhcp.leaseTime)
    • GitHub Security Advisory — GHSA-vfmq-jrx3-wv3c (dhcp.hosts)
    • Pi-hole FTL v6.6 リリースノート

    著者

    Kerem Oruç - サイバーセキュリティエンジニア

    • GitHub: @keraattin
    • Twitter: @keraattin
    ツールをダウンロード