Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

security: user-controlled URL params injected directly into Redux store via JSON.parse

Abierto Apto para principiantes
#2,319 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@Talha12Shiekh ya está trabajando en esto.

Desde el 30/7/2026.

  • #2333 de @Talha12Shiekh — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
javascript, react

Línea de trabajo

Comienza en packages/web/src/components/basic/ReactiveBase.js, en las líneas 140-162, e inspecciona cómo se analizan los parámetros de URL antes de entrar en selectedValues. Valida que los valores analizados sean primitivas de tipo string u objetos con value y category, rechazando otras formas. La tarea está terminada cuando los parámetros válidos siguen rellenando el estado de Redux, mientras que las estructuras manipuladas o malformadas se ignoran.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
JavaScript
Estrellas
4.9k
Forks
479
Merge medio
4 d 10 h
PR fusionados (30 d)
4

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de appbaseio/reactivesearch

Todos los issues de appbaseio/reactivesearch

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.