security: deep nesting causes stack overflow in JSON parser
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza leyendo las funciones del analizador JSON parseValue, parseArrayElems y parseObjectElems para seguir su recursión mutua y el manejo existente de ParseError. Define cómo se pasa el límite de profundidad configurable y qué valor predeterminado es apropiado; después, verifica que una entrada profundamente anidada devuelva ParseError.nestingDepthExceeded sin agotar la pila de ejecución.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
The JSON parser (parseValue/parseArrayElems/parseObjectElems) is mutually recursive with no depth limit. Deeply nested JSON (e.g., [[[[...10000 levels...]]]]) will exhaust the Lean runtime stack.
This is distinct from the DoS risk in #13 (which is about exponent arithmetic) — this is about recursion depth on the parse stack.
Expected fix
Add a configurable maximum nesting depth to the parser (defaulting to a safe value like 512 or 1024). Return a ParseError.nestingDepthExceeded on overflow.
References
- Related to: #13 (DoS prevention)
- Flagged by AI code review on PR #8
- Lenguaje dominante
- Lean
- Estrellas
- 2
- Forks
- 1
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de lambdaclass/lambda_compiler_kit
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 50/100
Todos los issues de lambdaclass/lambda_compiler_kit
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
internal.h中,漏掉了1个定义。 Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
oxc-project/oxc#26944 ·