Plataforma
php
Componente
phpseclib
Corrigido em
1.0.28
phpseclib é uma biblioteca PHP para comunicações seguras. Uma vulnerabilidade foi identificada nas versões 1.0.0, 2.0.53 e 3.0.0 até 3.0.50, onde a função getbinarypacket() utilizava o operador != para comparar o HMAC recebido com o HMAC calculado localmente. Essa comparação imprecisa pode levar a ataques de timing, explorando a forma como o PHP compara strings binárias. A correção para esta vulnerabilidade está disponível nas versões 1.0.28, 2.0.53 e 3.0.51.
A CVE-2026-40194 afeta a biblioteca phpseclib SSH2, especificamente a função getbinarypacket(). Esta função utiliza o operador != do PHP para comparar o HMAC de um pacote SSH recebido com o HMAC calculado localmente. Embora o PHP utilize memcmp() para comparações binárias de igual comprimento, este processo ainda pode ser variável em tempo devido à forma como memcmp() se comporta em certas implementações e versões do PHP. Isso introduz uma vulnerabilidade de comparação de tempo variável (CWE-208). Embora a severidade seja considerada baixa (defesa em profundidade), a possibilidade de um ataque de canal lateral de tempo, embora difícil de explorar na prática, existe. A vulnerabilidade foi verificada por meio de testes de desempenho que demonstram variações no tempo de comparação.
A exploração desta vulnerabilidade requer um atacante com a capacidade de enviar pacotes SSH maliciosos para um servidor vulnerável. O ataque é baseado na medição do tempo que leva o servidor a verificar o HMAC. Pequenas diferenças no tempo de resposta podem revelar informações sobre o HMAC correto. No entanto, a dificuldade deste tipo de ataque é considerável, pois requer controle preciso sobre o ambiente de rede e a capacidade de realizar medições de tempo precisas. Além disso, as contramedidas de defesa em profundidade, como o ruído aleatório no tempo de processamento, podem dificultar ainda mais a exploração.
Applications utilizing phpseclib SSH2 for SSH2 functionality are at risk. This includes web applications, automation scripts, and any other PHP-based systems relying on this library for secure remote access. Systems with older, unpatched versions of phpseclib SSH2 are particularly vulnerable.
• php: Examine PHP application code for usage of phpseclib SSH2. • php: Check the version of phpseclib SSH2 being used within your PHP applications.
composer show phpseclib\phpseclib• php: Review application logs for SSH connection errors or disconnections, which could indicate attempted exploitation. • generic web: Monitor SSH server logs for unusual connection patterns or frequent disconnections.
disclosure
Status do Exploit
EPSS
0.01% (percentil 2%)
CISA SSVC
Vetor CVSS
A solução para a CVE-2026-40194 é atualizar para a versão 3.0.51 do phpseclib. Esta versão corrige a vulnerabilidade substituindo a comparação != por uma implementação de comparação de tempo constante. Recomenda-se fortemente atualizar as aplicações que utilizam phpseclib SSH2 para mitigar este risco. Além disso, revise as práticas de segurança gerais para garantir uma defesa em profundidade contra possíveis ataques de canal lateral. A atualização deve ser realizada o mais breve possível para minimizar a janela de exposição à vulnerabilidade.
Actualice la biblioteca phpseclib a la versión 3.0.51, 2.0.53 o 1.0.28 para mitigar la vulnerabilidad. La actualización reemplaza la comparación insegura con el operador != por la función hash_equals(), que proporciona una comparación segura de cadenas binarias.
Análise de vulnerabilidades e alertas críticos diretamente no seu e-mail.
Um ataque de canal lateral de tempo explora as variações no tempo que um sistema leva para realizar uma operação para extrair informações confidenciais, como uma chave criptográfica.
Embora exista uma vulnerabilidade, a exploração prática é difícil e requer condições específicas. É considerada uma medida de defesa em profundidade.
Se a atualização imediata não for possível, considere implementar contramedidas de defesa em profundidade, como adicionar ruído aleatório ao tempo de processamento.
Verifique a versão do phpseclib SSH2 que você está usando. Se for anterior à versão 3.0.51, é vulnerável.
Atualmente, não existem ferramentas específicas para detectar esta vulnerabilidade, mas recomenda-se realizar auditorias de código e testes de penetração.
Envie seu arquivo de dependências e descubra na hora se esta e outras CVEs te atingem.