Potential NULL pointer dereference in php_dom_create_fake_namespace_decl_node_ptr()
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
- 68/100
Piste de recherche
Commencez dans ext/dom/php_dom.c et examinez php_dom_create_fake_namespace_decl_node_ptr(), puis suivez la manière dont dom_object_namespace_node_clone_obj() et php_dom_create_fake_namespace_decl() traitent son résultat. Vérifiez le chemin d’échec de l’allocation de xmlNewNs() et exécutez les tests DOM pertinents. Le travail est terminé lorsque l’échec est géré sans déréférencer un pointeur NULL et que les appelants gèrent sans risque l’échec de la création.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
Hi, my static analyzer, Svace, has found a potential bug. Could you take a look and provide some feedback?
(File - /ext/dom/php_dom.c)
The function php_dom_create_fake_namespace_decl_node_ptr() dereferences the return value of xmlNewNs() without checking whether it is NULL.
xmlNsPtr curns = xmlNewNs(NULL, original->href, NULL);
if (original->prefix) {
curns->prefix = xmlStrdup(original->prefix);
}
<?php
Since xmlNewNs() may return NULL on allocation failure, a non-NULL original->prefix can cause a NULL pointer dereference when accessing curns->prefix.
Impact
This may lead to a crash of the PHP process, potentially resulting in a denial of service (DoS) when processing DOM namespace nodes.
The affected function is called from dom_object_namespace_node_clone_obj() and php_dom_create_fake_namespace_decl(), making the issue relevant to namespace node cloning and creation.
Proposed Solution
Check the return value of xmlNewNs() before dereferencing curns and handle allocation failures appropriately. Additionally, ensure that callers correctly handle a failure to create the fake namespace declaration node.
PHP Version
PHP 8.3.31
Operating System
No response
- Langage dominant
- C
- Étoiles
- 41.8k
- Forks
- 8.5k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 145
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
-
ext/openssl: 8.2.31+/8.3.31+ fail to build against OpenSSL 1.0.2 (ASN1_STRING_get0_data in xp_ssl.c)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
Les mainteneurs répondent en général sous 1 jour
-
SNMP accepts malformed remote portsPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 Une demi-journée Accessibilité débutants 62/100
php/php-src#25137 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Bug Status: Needs Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
Les mainteneurs répondent en général sous 1 jour
-
quoted_printable_encode() produces lines longer than 76 characters for bytes 0xF5 to 0xFFPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/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 62/100
php/php-src#24196 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de php/php-src
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
not for AI lovers
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
OSGeo/gdal#15515 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Template: Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
betaflight/betaflight#16014 ·
Les mainteneurs répondent en général sous 3 jours
-
Bug: [BMC] show techsupport logs ERR "BMC instance is not available" on switch host with a SONiC BMCOuverteBug :bug:
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
sonic-net/sonic-buildimage#30701 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area:tooling bug platform:android
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
maplibre/maplibre-native-ffi#1791 ·
Les mainteneurs répondent en général sous 1 jour