python / python/cpython

Memory exhaustion via crafted zip file

Abierto
#156,002 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

3.10 3.11 3.12 3.13 3.14 3.15 3.16 stdlib type-security
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

As reported by @tonghuaroot:

zipfile.ZipExtFile._read1() bounds the output of each decompress() call for DEFLATE members (it passes a max_length to zlib), but for bzip2 / LZMA / Zstandard members it called self._decompressor.decompress(data) with no bound. A whole compressed chunk was therefore expanded into a single allocation before the data = data[:self._left] clip ran.

Linked PRs
  • gh-156003
  • gh-156362
  • gh-156737
  • gh-156738
  • gh-156739
  • gh-156740
  • gh-156741
  • gh-157180
  • gh-157268
  • gh-157557

Guía de contribución

Abrir la guía de contribución

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.

Línea de trabajo

Empieza en zipfile.ZipExtFile._read1() y compara su manejo de DEFLATE con las rutas de bzip2, LZMA y Zstandard. Confirma que la salida expandida está acotada antes de recortar los datos restantes; después, añade cobertura de regresión para miembros creados específicamente y verifica los PR enlazados para evitar duplicar trabajo.

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

Evaluación

Stack tecnológico
python
Área
security
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
20/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.