jsdiff has a Denial of Service vulnerability in parsePatch and applyPatch
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- security
Direzione di ricerca
Inizia controllando la dichiarazione della dipendenza di BackstopJS per il pacchetto npm diff e conferma quale versione è installata. Esamina i dettagli della vulnerabilità in parsePatch e applyPatch, quindi verifica che la dipendenza sia almeno la versione 8.0.3 e che i test pertinenti del progetto continuino a passare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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]
- Lingua principale
- JavaScript
- Stelle
- 7.2k
- Fork
- 617
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di garris/BackstopJS
-
Upgrade Node Image in Docker File to LTS versionForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
garris/BackstopJS#1512 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
garris/BackstopJS#576 · 6 commenti ·
-
Security issue with "extract-zip" and outdated "puppeteer" versionForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
garris/BackstopJS#1625 · 10 commenti · 1 reazione ·
-
Prerequisites missingAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
garris/BackstopJS#1619 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
garris/BackstopJS#1615 ·
Tutte le issue di garris/BackstopJS
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
simstudioai/sim#9831 ·
I maintainer di solito rispondono entro 1 giorno
-
status: waiting for maintainer
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
mui/material-ui#49751 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 2 giorni
-
Edit: Monumental TV [PY]Apertachannels:edit check:passed
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno