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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-105221-gist-tls — CVE-2026-105221 - gist RubyGem - 高 - MITM - GitHub OAuthトークン窃取 | Kitploit
ツール/GitHubGitHub/abraxas/cve-2026-105221-gist-tls
脆弱性分析エクスプロイトウェブアプリケーション悪用ネットワークセキュリティ暗号化ペネトレーションテストラボと実践
GitHubabraxas/cve-2026-105221-gist-tls

cve-2026-105221-gist-tls

CVE-2026-105221 - gist RubyGem - 高 - MITM - GitHub OAuthトークン窃取

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - cve-2026-105221-gist-tls

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cve-2026-105221-gist-tls

cve-2026-105221-gist-tls

gist RubyGem < 6.1.0 - defunkt

http_connection が OpenSSL::SSL::VERIFY_NONE を設定している。GitHub への HTTPS は依然として暗号化されるが、任意の証明書が受け入れられる。経路上の攻撃者が、CLI が送信する OAuth トークンを読み取り、被害者の gist を読み取り・変更できる。

IDCVE-2026-105221
CWECWE-295
CVSSHigh: 7.4 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N (VulnCheck 4.0: 9.1)
Productgist
Affected4.0.0 から 6.0.0。ラボの固定バージョンは 6.0.0。6.1.0 で修正 (07ccc1a)。
Authgist CLI に対する経路上 MITM
LicenseGNU Affero GPL v3.0
Lab127.0.0.1 のみ

攻撃者ができること

攻撃者は経路上に位置し、GitHub トークンを奪取する。

  • 任意の TLS 証明書を提示する。 gist 6.0.0 はピアを検証しない。CN=mitm.invalid の自己署名証明書で十分である。
  • Authorization: token ... を読み取る。 ログイン (gist --login) および gist のアップロード/一覧表示/削除はすべて http_connection を経由する。~/.gist 内のトークンがそのソケットを通る。
  • 被害者の gist を読み取り・編集する。 そのトークンは gist スコープを持つ GitHub OAuth 資格情報である。プライベート gist、更新、削除。
  • 転送中のログインを捕捉する。 デバイスフローおよびユーザー名/パスワードによるログインは、同じ未検証の TLS を介して GitHub にアクセスする。

攻撃者にはネットワーク上の位置が必要である。悪意のある Wi-Fi、プロキシ、中間に位置するマシンなど。これはサーバーに対する未認証のリモート RCE ではない。

6.1.0 は VERIFY_PEER を設定する。同じ偽の証明書は certificate verify failed (self-signed certificate) で失敗し、トークンがクライアントから出ることはない。

発見の経緯

VulnCheck が CVE-2026-105221 を公開した。Siyang Wu が報告した。Issue 373 が公開チケットである。PR 374 が検証モードを切り替えた。私は公開 CVE をラボで再現した。公開 PoC は存在しなかった。

lib/gist.rb の 6.0.0 における http_connection:

if uri.scheme == "https"
  connection.use_ssl = true
  connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

6.1.0 は VERIFY_PEER である。

ループバックラボは、自己署名証明書を持つ偽の GitHub Enterprise HTTPS スタブである。GITHUB_URL=https://127.0.0.1:8443 により gist は GHE モード (POST /api/v3/gists) になる。ラボトークン CVE-2026-105221-WITNESS が対応する ~/.gist.* ファイル内に存在する。gist 6.0.0 は TLS を完了し、スタブが Authorization: token CVE-2026-105221-WITNESS を捕捉して witness を書き込む。同じスタブに対する gist 6.1.0 は TLS で失敗する。6.1.0 の捕捉回数はゼロのままである。api.github.com とは何も通信しない。

SUCCESS CVE-2026-105221 vuln-tls=ok token-captured=1 patched-tls=fail witness-written=yes CVE-2026-105221-WITNESS

記録済みの誤った方向性: なし。最初の run.sh が SUCCESS を出力した。リバースシェル。見せかけ。オラクルは、6.0.0 で捕捉されたラボトークンと、6.1.0 での自己署名 TLS エラーである。

ラボ

cd lab
./run.sh

対象は必ず https://127.0.0.1:18210 (コンテナ 8443) のみ。run.sh は RubyGems から gist 6.0.0 と 6.1.0 をインストールし、コンテナ内でスタブを提供し、その後スタックを破棄する。自己署名証明書。実際の GitHub は使用しない。

修正

gist gem を 6.1.0 以降にアップグレードする。

参考資料

  • CVE-2026-105221
  • NVD
  • defunkt/gist タグ v6.0.0 / v6.1.0
  • Issue 373
  • PR 374 / 07ccc1a
  • lib/gist.rb v6.0.0 L466-L468
  • CWE-295

ライセンス

GNU Affero GPL v3.0

ツールをダウンロード