jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript
- 領域
- security
調査の方向性
まず、npm パッケージ diff に対する BackstopJS の依存関係宣言を確認し、インストールされているバージョンを確認します。parsePatch と applyPatch の脆弱性の詳細を確認したうえで、依存関係が少なくとも 8.0.3 であり、プロジェクトの関連するテストが引き続きパスすることを検証します。
索引モデルが issue の本文から書いたものです。
説明
Security Vulnerability: Denial of Service (DoS) in jsdiff
Vulnerability Overview
A vulnerability has been identified in jsdiff where certain line break characters can lead to an infinite loop and potential memory exhaustion.
| Detail | Description |
|---|---|
| Package | diff (npm: jsdiff) |
| Affected Versions | < 8.0.3 |
| Patched Version | 8.0.3 |
Impact
The parsePatch method is vulnerable to an infinite loop when processing filename headers containing specific line break characters: \r, \u2028, or \u2029.
Key risks:
- Memory Exhaustion: The process will consume memory indefinitely until it crashes (Out of Memory).
- Denial of Service (DoS): Attackers can trigger this with a very small payload; size limits on user input do not provide protection.
- Affected Methods: Both
parsePatchandapplyPatch(when used with string inputs) are affected. - Secondary Issue: A lesser ReDOS (Regular Expression Denial of Service) exists in the patch header parsing, which can lead to $O(n^3)$ time complexity.
Patches
✅ All identified vulnerabilities have been fixed in v8.0.3.
Users are strongly encouraged to upgrade as soon as possible:
npm install [email protected]
- 主要言語
- JavaScript
- スター
- 7.2k
- フォーク
- 617
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
garris/BackstopJS のほかの issue
-
Upgrade Node Image in Docker File to LTS version再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 62/100
garris/BackstopJS#1512 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
garris/BackstopJS#576 · コメント 6 件 ·
-
Security issue with "extract-zip" and outdated "puppeteer" version対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
garris/BackstopJS#1625 · コメント 10 件 · リアクション 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
garris/BackstopJS#1619 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
garris/BackstopJS#1615 ·
garris/BackstopJS の issue をすべて見る
似ている issue
-
P2 Team S Type: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
google/site-kit-wp#14138 ·
メンテナーはふだん 2 日以内に返信
-
Agents bug status: needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
mastra-ai/mastra#29963 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
agent:either area:adapters priority:p3 type:chore
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
jojo-stand36/Tacet#251 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
Foundryborne/daggerheart#2611 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信