NULL pointer dereference in php_ini.c (PHP 8.3)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
Línea de trabajo
Lee main/php_ini.c alrededor de la llamada a expand_filepath() en la línea 565 y de la llamada posterior a strlen(filename) cerca de la línea 610. Revisa las pruebas existentes de PHP INI antes de ejecutar el conjunto de pruebas pertinente. La tarea está terminada cuando la ruta de error no puede desreferenciar un filename NULL y el comportamiento está cubierto por una prueba adecuada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
At main/php_ini.c:565 the return value of expand_filepath() is assigned to pointer filename without checking whether the function returned NULL:
https://github.com/php/php-src/blob/PHP-8.3/main/php_ini.c#L563-L566
The expand_filepath() function may return NULL if path expansion fails. However, later pointer filename is dereferenced by calling strlen(filename) without an additional NULL check:
https://github.com/php/php-src/blob/PHP-8.3/main/php_ini.c#L599-L609
In the analyzed PHP 8.3 source this operation corresponds to php_ini.c:610.
This may lead to a NULL pointer dereference if expand_filepath() fails.
Possible solution
Checking the return value of expand_filepath() before using filename may prevent unexpected behavior:
filename = expand_filepath(php_ini_file_name, NULL);
if (filename) {
free_filename = true;
} else {
filename = php_ini_file_name;
}
Found by Linux Verification Center (https://portal.linuxtesting.ru/) using SVACE.
Author E. Tretiakov.
PHP Version
8.3.24 (found with static analysis)
Operating System
N/A
- Lenguaje dominante
- C
- Estrellas
- 40.4k
- Forks
- 8.2k
- Merge medio
- 2 d 3 h
- PR fusionados (30 d)
- 151
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 php/php-src
-
Bug Status: Needs Feedback
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
php/php-src#24121 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Variant analysis: 1 unfixed sibling safety gap in php-srcPosiblemente ocupada @kamil-tekiela la tomó hace 7 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
php/php-src#23958 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
sapi_lsapi_ub_write does not return bytes written in lsapi modePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. AbiertoBug Status: Needs Triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
Bug Status: Needs Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Flaky hrtime.phpt testPosiblemente ocupada @veksa la tomó hace 62 días. AbiertoBug Category: Tests Status: Verified
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
Todos los issues de php/php-src
Issues similares
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
HarbourMasters/Shipwright#7320 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
FujiNetWIFI/fujinet-firmware#1834 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
yanet-platform/yanet2#2874 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
intel/intel-lpmd#137 ·
Los mantenedores suelen responder en 1 día