NULL pointer dereference in php_ini.c (PHP 8.3)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
Piste de recherche
Lisez main/php_ini.c autour de l’appel à expand_filepath() à la ligne 565 et de l’appel ultérieur à strlen(filename) vers la ligne 610. Vérifiez les tests PHP INI existants avant d’exécuter la suite de tests pertinente. Le travail est terminé lorsque le chemin d’erreur ne peut pas déréférencer un filename NULL et que le comportement est couvert par un test approprié.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 3 h
- PR mergées (30 j)
- 151
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de php/php-src
-
Bug Status: Needs Feedback
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
php/php-src#24121 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Variant analysis: 1 unfixed sibling safety gap in php-srcPeut-être pris @kamil-tekiela l’a pris il y a 7 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
php/php-src#23958 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
sapi_lsapi_ub_write does not return bytes written in lsapi modePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. OuverteBug Status: Needs Triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 1 jour
-
Bug Status: Needs Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Flaky hrtime.phpt testPeut-être pris @veksa l’a pris il y a 62 jours. OuverteBug Category: Tests Status: Verified
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de php/php-src
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
EchoTools/nevr-runtime#117 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
DarkFlippers/qUnleashed#240 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
HarbourMasters/Shipwright#7320 ·
Les mainteneurs répondent en général sous 1 jour
-
area/documentation status/awaiting-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
yugabyte/yugabyte-db#34660 ·
Les mainteneurs répondent en général sous 1 jour