RERUM Can Be Attacked By Trees
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- javascript
Línea de trabajo
Comienza localizando la implementación de getAllVersions y la ruta interna de consulta de versiones, y luego compara su comportamiento con el enfoque de paginación de /query descrito en el issue. Despliega la app y prueba objetos con 100 y más de 1000 versiones; se considera terminado cuando las respuestas están limitadas a 100, los cursores recuperan las versiones restantes y los objetos con muchas versiones ya no agotan la memoria de pm2.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
getAllVersions loads unbounded data into memory. We were able to perform a successful History Tree Attack using an object that has 100 versions in history. Deeply versioned objects (1000+) can cause pm2 threads to run out of memory.
Recommendation: Add pagination to version queries. Limit default response to 100 versions with cursor-based pagination. This is how using /query for large data responses is handled by clients when they query for data. The technique can be used internally too.
Ensure the change is functional by testing it yourself and ensuring it solves the attack vector. Human developers can deploy the app and manually test the code you propose.
- Lenguaje dominante
- JavaScript
- Estrellas
- 3
- Forks
- 6
- Merge medio
- 4 d 9 h
- PR fusionados (30 d)
- 5
Preparar el entorno
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 CenterForDigitalHumanities/rerum_server_nodejs
-
bug documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
backend dependencies easy
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
CenterForDigitalHumanities/rerum_server_nodejs#290 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 50/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
Todos los issues de CenterForDigitalHumanities/rerum_server_nodejs
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
solana-foundation/solana-com#2202 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
yegor256/copyrights-action#216 ·
-
[BUG] onScroll never refreshes the window container's height after a vertical-only viewport resizeAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
juliangarnier/anime#1192 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
PedestrianDynamics/pyFDS-Evac#226 ·
Los mantenedores suelen responder en 1 día