SNMP accepts malformed remote ports
Mantenedores costumam responder em até 1 dia
@somethingwithproof já está trabalhando nisso.
Desde 1/11/2026.
- #25138 de @somethingwithproof — aberto
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- Meio dia
- Facilidade para iniciantes
- 62/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- c
- Domínio
- networking
Direção de pesquisa
A issue aponta para a análise de host e porta feita pelo construtor de SNMP, que segundo o relato usa atoi(). O payload não informa o arquivo, então comece localizando essa análise no código-fonte da extensão SNMP. Reproduza com as duas chamadas ao construtor do relato e depois verifique se portas malformadas lançam ValueError enquanto 0 e 65535 continuam funcionando. Está concluído quando os dois casos malformados lançam exceção e um teste phpt no diretório de testes da extensão SNMP os cobre.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
The following code:
<?php
new SNMP(SNMP::VERSION_1, '127.0.0.1:not-a-port', 'public');
new SNMP(SNMP::VERSION_1, '127.0.0.1:123junk', 'public');
does not throw an exception. The first port is interpreted as 0, and the
second is interpreted as 123.
I expected both malformed ports to result in a ValueError. The parser should
require at least one decimal digit, reject trailing characters, and enforce the
existing 0..65535 range.
PHP Version
PHP 8.4.28-dev (cli) (built: Nov 1 2026 11:27:04) (ZTS DEBUG)
Copyright (c) The PHP Group
Zend Engine v4.4.28-dev, Copyright (c) Zend Technologies
The same permissive atoi() parsing is present on the current master branch.
Operating System
macOS 27.2 arm64
- Linguagem predominante
- C
- Estrelas
- 41.7k
- Forks
- 8.5k
- Merge médio
- 2d 18h
- 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
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
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
-
Feature Status: Needs Triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
php/php-src#24183 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de php/php-src
Issues semelhantes
-
[compiler-rt] Rtsan-aarch64-NoInstTest: error: no such file or directory: 'NOTFOUND' (libatomic)Abertabuild-problem compiler-rt:rtsan platform:linux
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
llvm/llvm-project#239039 ·
Mantenedores costumam responder em até 1 dia
-
component:obi contribfest go test
Dificuldade 2/5 Menos de uma hora Facilidade para iniciantes 83/100
open-telemetry/opentelemetry-ebpf-instrumentation#4143 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Bug :bug:
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
sonic-net/sonic-buildimage#30541 ·
Mantenedores costumam responder em até 1 dia