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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
tough-cookie-2.5.0-cve-2023-26136-fix — tough-cookie 2.5.0 の CVE-2023-26136 に対するセキュリティパッチ - 後方互換性を備えたプロトタイプ汚染の脆弱性修正 | Kitploit
ツール/GitHubGitHub/uriyahav/tough-cookie-2.5.0-cve-2023-26136-fix
静的分析脆弱性分析コード分析ウェブセキュリティ論文と研究学習と教育
GitHuburiyahav/tough-cookie-2.5.0-cve-2023-26136-fix

tough-cookie-2.5.0-cve-2023-26136-fix

tough-cookie 2.5.0 の CVE-2023-26136 に対するセキュリティパッチ - 後方互換性を備えたプロトタイプ汚染の脆弱性修正

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
1年前未レビュー

CVE-2023-26136 tough-cookie 2.5.0向け修正

ミッション概要

このプロジェクトは、tough-cookie 4.1.3 以前のバージョンに存在する重大なプロトタイプ汚染(prototype pollution)脆弱性である CVE-2023-26136 に対処するものです。この脆弱性は、クッキー処理に [email protected] を使用している Penguin Software Inc. のWebアプリケーションに影響を及ぼします。

脆弱性の説明

CVE-2023-26136 は、CookieJar を rejectPublicSuffixes=false で使用した場合に発生するプロトタイプ汚染の脆弱性です。この問題は MemoryCookieStore クラスにおける不適切なオブジェクト初期化に起因し、攻撃者が悪意を持って細工したクッキードメインを通じて Object.prototype にプロパティを注入することを可能にします。

技術的詳細

脆弱性は、クッキーがプレーンなJavaScriptオブジェクト({})を使用して保存される lib/memstore.js に存在します。これらのオブジェクトは Object.prototype を継承するため、攻撃者は __proto__、constructor、prototype などのドメインを持つクッキーを設定することでこれを悪用し、プロトタイプ汚染を引き起こす可能性があります。

解決策

パッチの実装

この修正は、MemoryCookieStore クラス内のすべての {} を Object.create(null) に置き換えます:

root@kitploit:~
// Before (vulnerable)
this.idx = {};

// After (fixed)
this.idx = Object.create(null);

この変更により、プロトタイプチェーンを持たないオブジェクトを作成してプロトタイプ汚染を防ぎ、クッキーストレージを意図しない継承から効果的に分離します。

変更されたファイル

  • lib/memstore.js: オブジェクト初期化を Object.create(null) を使用するよう更新

プロジェクト構成

root@kitploit:~
├── README.md                    # This file
├── changes.diff                 # Git-compatible diff file
├── test-cve-2023-26136.js      # Unit test for the fix
├── tough-cookie/
│   ├── index.js                 # Exploit demonstration
│   ├── Original v2.5.0/         # Original vulnerable version
│   ├── v2.5.0-PATCHED/          # Patched version
│   │   └── tough-cookie-2.5.0.tgz  # Packed version
│   └── package.json
└── mission.txt                  # Original mission requirements

インストールとテスト

1. パッケージ版 (.tgz)

パッチ適用版は tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz として利用可能です。

インストールするには:

root@kitploit:~
npm install ./tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz

2. テストスイートの実行

元の tough-cookie テストスイートはパスするはずです。テストを実行するには:

root@kitploit:~
cd tough-cookie/v2.5.0-PATCHED
npm install
npm test

注記: 元の tough-cookie 2.5.0 にはこの配布物にテストディレクトリが含まれていませんが、パッチ適用版は元のAPIとの完全な互換性を維持しています。

3. 脆弱性修正のユニットテスト

修正を検証するためのカスタムユニットテストを実行します:

root@kitploit:~
node test-cve-2023-26136.js

期待される出力:

root@kitploit:~
Testing CVE-2023-26136 fix...
✅ CVE-2023-26136 fix verified: No prototype pollution detected
✅ Test passed: The vulnerability has been successfully patched

4. エクスプロイトのデモンストレーション

プロジェクトには tough-cookie/index.js にエクスプロイトのデモンストレーションが含まれています:

root@kitploit:~
cd tough-cookie
node index.js

これにより、元の脆弱なバージョンとパッチ適用版の両方がテストされ、次の結果が表示されます:

  • 元のバージョンでは EXPLOITED SUCCESSFULLY
  • パッチ適用版では EXPLOIT FAILED

変更のドキュメント

changes.diff

changes.diff ファイルには、次を使用して適用できる git互換のdiffが含まれています:

root@kitploit:~
git apply changes.diff

このdiffには、脆弱性の修正に必要な変更のみが含まれており、意図しない変更は一切含まれていません。

エクスプロイトの詳細

エクスプロイトは次の手順で動作します:

  1. rejectPublicSuffixes: false で CookieJar を作成する
  2. ドメイン __proto__ を持つ悪意のあるクッキーを設定する
  3. これにより Object.prototype チェーンが汚染される
  4. 新しいオブジェクトが汚染されたプロパティを継承する

潜在的な被害:

  • アプリケーションの動作操作
  • セキュリティバイパス
  • サービス拒否(DoS)
  • データ破損

Node.js互換性

✅ Node.js 20(LTS) でテストおよび検証済み

リポジトリ情報

GitHubリポジトリ: フォークされた tough-cookie リポジトリ

Gitタグ: v2.5.0-patched-cve-2023-26136-fix

CI/CD経験

使用した継続的インテグレーションツール:

  1. GitHub Actions - エキスパートレベル

    • 自動テストとデプロイ
    • セキュリティスキャンと依存関係管理
    • マルチプラットフォームテスト
  2. Jenkins - アドバンスレベル

    • パイプラインの開発とメンテナンス
    • Dockerコンテナ化
    • さまざまなツールとの統合
  3. Travis CI - インターミディエイトレベル

    • ビルド自動化
    • テスト実行
    • デプロイワークフロー
  4. CircleCI - インターミディエイトレベル

    • CI/CDパイプライン構成
    • Dockerサポート
    • 並列ジョブ実行
  5. GitLab CI/CD - アドバンスレベル

    • パイプライン開発
    • Kubernetesデプロイ
    • セキュリティスキャン統合

追加ツール:

  • Docker - エキスパートレベル(コンテナ化とオーケストレーション)
  • Kubernetes - アドバンスレベル(デプロイとスケーリング)
  • SonarQube - インターミディエイトレベル(コード品質分析)
  • Snyk - インターミディエイトレベル(セキュリティ脆弱性スキャン)

参考情報

  • CVE-2023-26136 - NVD
  • tough-cookie GitHubリポジトリ
  • プロトタイプ汚染セキュリティガイド

ライセンス

このプロジェクトは、セキュリティ修正を追加しながら、元の tough-cookie ライセンス(BSD-3-Clause)を維持しています。


注記: これは、CVE-2023-26136 の脆弱性を排除しながら完全な後方互換性を維持する、セキュリティに焦点を当てたパッチです。

ツールをダウンロード