Potential NULL pointer dereference in php_dom_create_fake_namespace_decl_node_ptr()
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 68/100
Direção de pesquisa
Comece em ext/dom/php_dom.c e inspecione php_dom_create_fake_namespace_decl_node_ptr(); em seguida, acompanhe como dom_object_namespace_node_clone_obj() e php_dom_create_fake_namespace_decl() tratam o resultado. Verifique o caminho de falha na alocação de xmlNewNs() e execute os testes de DOM pertinentes. O trabalho estará concluído quando a falha for tratada sem desreferenciar um ponteiro NULL e os chamadores lidarem com segurança com a falha de criação.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- C
- Estrelas
- 41.8k
- Forks
- 8.5k
- Merge médio
- 2d 13h
- PRs com merge (30d)
- 145
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais 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)Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
Mantenedores costumam responder em até 1 dia
-
SNMP accepts malformed remote portsTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 Meio dia Facilidade para iniciantes 62/100
php/php-src#25137 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Bug Status: Needs Triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
Mantenedores costumam responder em até 1 dia
-
quoted_printable_encode() produces lines longer than 76 characters for bytes 0xF5 to 0xFFTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
Bug Status: Needs Triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
php/php-src#24196 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de php/php-src
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
not for AI lovers
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
OSGeo/gdal#15515 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Template: Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
betaflight/betaflight#16014 ·
Mantenedores costumam responder em até 3 dias
-
Bug: [BMC] show techsupport logs ERR "BMC instance is not available" on switch host with a SONiC BMCAbertaBug :bug:
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
sonic-net/sonic-buildimage#30701 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
area:tooling bug platform:android
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
maplibre/maplibre-native-ffi#1791 ·
Mantenedores costumam responder em até 1 dia