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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Tough-Cookie-v2.5.0-Patched — CVE-2023-26136プロトタイプ汚染脆弱性を修正したパッチ適用済みtough-cookie v2.5.0。MemoryCookieStoreでObject.create(null)を使用し、エクスプロイトのデモと単体テストが含まれます。 | Kitploit
ツール/GitHubGitHub/dani33339/tough-cookie-v2.5.0-patched
静的分析脆弱性分析コード分析エクスプロイトウェブセキュリティ学習と教育
GitHubdani33339/tough-cookie-v2.5.0-patched

Tough-Cookie-v2.5.0-Patched

CVE-2023-26136プロトタイプ汚染脆弱性を修正したパッチ適用済みtough-cookie v2.5.0。MemoryCookieStoreでObject.create(null)を使用し、エクスプロイトのデモと単体テストが含まれます。

人気

すべて見る →

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

すべてのツールを探索

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

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

Tough-Cookie v2.5.0 パッチ版 - プロトタイプ汚染修正

概要

このリポジトリは、tough-cookie パッケージのバージョン 2.5.0 に、深刻な プロトタイプ汚染 の脆弱性 (CVE-2023-26136) に対応するパッチを適用したものです。この脆弱性により、攻撃者は JavaScript オブジェクトにプロパティを注入することでプロトタイプチェーンを操作できます。これにより、予期しない動作、リモートコード実行などのセキュリティリスク、およびこのパッケージに依存するアプリケーションでの互換性の問題が発生する可能性があります。

脆弱性の説明

tough-cookie パッケージの v4.1.3 より前のバージョンは、rejectPublicSuffixes=false モードで CookieJar を使用する際に プロトタイプ汚染 の影響を受けます。この脆弱性は、特に cookie.domain が __proto__ に設定された場合に、Cookie の不適切な処理に起因します。これにより、攻撃者はコアの Object.prototype オブジェクトを変更でき、アプリケーション全体に広範囲にわたる問題を引き起こす可能性があります。

CVE-2023-26136 の詳細については、以下を参照してください。

  • NVD - CVE-2023-26136
  • Snyk - CVE-2023-26136 in Tough-Cookie
  • GitHub - Issue #282

プロトタイプ汚染の潜在的なリスク

プロトタイプ汚染は、以下のような深刻なリスクをもたらす可能性があります。

  • セキュリティの脆弱性: ベースの Object.prototype を変更することで、攻撃者はオブジェクトの動作を操作し、特権の昇格、機密データへのアクセス、アプリケーションのセキュリティメカニズムの回避を引き起こす可能性があります。

  • サービス拒否 (DoS): プロトタイプチェーンを汚染すると、システムで予期しない動作が発生し、クラッシュ、無限ループ、リソースの枯渇を引き起こし、正当なユーザーがアプリケーションを使用できなくなる可能性があります。

  • 互換性の問題: Object.prototype を変更すると、他のライブラリやフレームワークとのやり取りでエラーや予期しない動作が発生する可能性があります。プロトタイプチェーンに依存する依存関係が壊れ、統合の問題やアップデート中のアプリケーションの誤動作を引き起こす可能性があります。

  • 予期しないアプリケーション動作: プロトタイプ汚染は、データの破損、セキュリティ侵害、さらなる悪用へのアプリケーションの露出など、不安定なプログラム動作につながる可能性があります。

主な修正点

このパッチでは、MemoryCookieStore クラス、特に putCookie メソッドを変更して、プロトタイプのないオブジェクトを作成することでプロトタイプ汚染を防止します。主な変更点は次のとおりです。

  1. {} の代わりに Object.create(null) を使用して、プロトタイプを持たないオブジェクトを作成する。
  2. cookie.domain = __proto__ で Cookie を設定できる脆弱性を修正する。
  3. 脆弱性が適切に対処されていることを確認するテストを追加する。

パッチ版のインストール

パッチを適用した tough-cookie をインストールするには、次のコマンドを使用します。

npm install ./tough-cookie-2.5.0-PATCHED.tgz

修正のテスト

このリポジトリには、プロトタイプ汚染の脆弱性が正常に対処されたことを確認するための単体テストが含まれています。

prototype_pollution_test という名前のテストでは、ドメインが __proto__ の Cookie を設定しても JavaScript のプロトタイプチェーンに影響を与えないことを具体的にチェックします。これにより、プロトタイプ汚染が防止され、アプリケーションの整合性が維持されます。

テストを実行して修正を確認するには、次のコマンドを実行します。

npm test

エクスプロイトの実証

オリジナルバージョンとパッチ版の両方でエクスプロイトを実証するには、次の手順に従います。

オリジナルの脆弱なバージョン

脆弱なバージョンの tough-cookie をインストールします。

npm install [email protected] && node index.js

期待される出力:

Polluted object: {
  Slonser: Cookie="Slonser=polluted; Domain=__proto__; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms",
  Auth: Cookie="Auth=Lol; Domain=google.com; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms"
} EXPLOITED SUCCESSFULLY

これは、オブジェクトのプロトタイプが汚染されたことを示しており、元のバージョンに脆弱性が存在することが確認されます。

パッチ版

 npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

期待される出力:

EXPLOIT FAILED

これは、エクスプロイトが正常にブロックされたことを示しており、プロトタイプ汚染の脆弱性が修正されたことが確認されます。

アプローチと実施手順

tough-cookie v2.5.0 の プロトタイプ汚染 脆弱性に対処するプロセスは、修正が徹底的かつ効果的であることを保証するために、いくつかの系統的な手順を踏みました。以下は私が従ったアプローチの概要です。

1. 脆弱性の理解

まず プロトタイプ汚染 (CVE-2023-26136) について調査し、その影響を理解することから始めました。この脆弱性により、攻撃者は cookie.domain プロパティを介してプロトタイプチェーンにプロパティを注入でき、リモートコード実行などのセキュリティリスクを引き起こす可能性があります。

2. 既存の修正の調査

脆弱性に関する GitHub の問題や議論を調査しました。これには、Object.create(null) を使用してプロトタイプ汚染を防止する tough-cookie v4.1.3 の修正も含まれます。これにより、v2.5.0 を修正するために必要な変更を特定できました。

3. 脆弱なバージョンとパッチ版の分析

v2.5.0 と v4.1.3 を比較して違いを理解し、必要な変更を特定しました。主な変更点は、プロトタイプフリーのオブジェクトを使用して悪用を防止することでした。

4. ソリューションの実装

MemoryCookieStore クラスを更新して、{} の代わりに Object.create(null) を使用し、プロトタイプ汚染が発生しないようにしました。

5. ソリューションのテスト

修正を検証するための単体テストを作成し、エクスプロイトの実証スクリプト (index.js) を作成して、パッチ版で脆弱性がどのように防止されるかを示しました。

6. 修正の文書化

最後に、インストールおよびテスト手順を含む修正を文書化し、パッチ版 (tough-cookie-2.5.0-PATCHED.tgz) を簡単に配布できるようにパッケージ化しました。

変更の概要

v2.5.0 から追加/編集されたファイル

  • index.js: 脆弱性と修正を実証するメインスクリプト。
  • lib/memstore.js: プロトタイプ汚染を防止するために変更された MemoryCookieStore クラス。
  • test/ietf_data/parser.json: テストデータの古い日付を更新するために編集。
  • test/prototype_pollution_test.js: プロトタイプ汚染が修正されたことを確認する単体テスト。
  • tough-cookie-2.5.0-PATCHED.tgz: tough-cookie パッケージのパッチ版。
ツールをダウンロード