security: user-controlled URL params injected directly into Redux store via JSON.parse
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- javascript, react
Direzione di ricerca
Inizia in packages/web/src/components/basic/ReactiveBase.js alle righe 140-162 e analizza come vengono interpretati i parametri URL prima di essere inseriti in selectedValues. Verifica che i valori interpretati siano primitivi stringa oppure oggetti con value e category, rifiutando le altre forme. Il lavoro è completato quando i parametri validi continuano a popolare lo stato Redux, mentre le strutture create ad arte o malformate vengono ignorate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
ReactiveBase.js parses URL search parameters directly with JSON.parse and injects the result into the Redux store as initial selectedValues:
Array.from(params.keys()).forEach((key) => {
try {
const parsedParams = JSON.parse(params.get(key));
selectedValues[key] = { value: parsedParams.value || parsedParams, ... };
} catch (e) { /* silent failure */ }
});
A crafted URL can inject arbitrary object structures into the store, potentially triggering unexpected behavior in downstream components that consume selectedValues.
Location
packages/web/src/components/basic/ReactiveBase.js, lines 140-162
Suggested Fix
Validate the shape of parsed values before injection. Expected shapes are string primitives or { value, category } objects. Reject anything that doesn't match.
Severity
High — URL injection into application state
- Lingua principale
- JavaScript
- Stelle
- 4.9k
- Fork
- 479
- Merge medio
- 4g 10h
- PR unite (30g)
- 4
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 appbaseio/reactivesearch
-
ci: add Node.js version matrix, caching, and lint step to test workflowForse già presa @Talha12Shiekh l’ha presa 76 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
appbaseio/reactivesearch#2322 ·
I maintainer di solito rispondono entro 1 giorno
-
chore: add Dependabot config for automated dependency updatesForse già presa @Talha12Shiekh l’ha presa 76 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
appbaseio/reactivesearch#2321 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
refactor: consolidate 12 near-identical SVG icon components into one patternForse già presa @Talha12Shiekh l’ha presa 78 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
appbaseio/reactivesearch#2324 ·
I maintainer di solito rispondono entro 1 giorno
-
refactor: SearchBox.js is 2692 lines — extract subcomponents for maintainabilityForse già presa @Talha12Shiekh l’ha presa 76 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
appbaseio/reactivesearch#2323 ·
I maintainer di solito rispondono entro 1 giorno
-
bug: image src attributes not validated for javascript: protocol URLsForse già presa @Talha12Shiekh l’ha presa 76 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
appbaseio/reactivesearch#2320 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di appbaseio/reactivesearch
Issue simili
-
Awaiting Maintainer Approval Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
processing/p5.js-web-editor#4364 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
woocommerce/woocommerce-google-analytics-integration#699 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 74/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
JsCommunity/app-conf#22 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno