flawopen.com/Teardowns/cve-2026-1731-beyondtrust-websocket-command-injection
CVE-2026-1731: injeção de comandos no BeyondTrust
CVE-2026-1731 permite comandos sem autenticação via WebSocket no BeyondTrust Remote Support/PRA. Aplique o patch e investigue sistemas expostos.
Imagine uma recepção que pede ao visitante uma versão numérica e entrega a resposta a uma calculadora que executa fórmulas, em vez de conferir apenas os algarismos. A entrada pode deixar de ser dado e virar instrução. A CVE-2026-1731 expunha essa fronteira em um serviço BeyondTrust; a correção rejeita qualquer valor que não seja uma versão decimal curta antes da comparação.
Conceitos Centrais e Termos
CVE-2026-1731- Vulnerabilidade crítica de injeção de comandos do sistema, sem autenticação, no BeyondTrust Remote Support e Privileged Remote Access.
thin-scc-wrapper- Wrapper de shell do BeyondTrust usado em um caminho de protocolo do cliente. A análise do patch pela Rapid7 aponta o tratamento da versão enviada pelo par como limite vulnerável.
Avaliação aritmética do Bash- Operadores numéricos do Bash avaliam operandos como expressões aritméticas. Texto não confiável pode atravessar a fronteira entre dado e expressão.
CWE-78- Neutralização inadequada de elementos especiais usados em um comando do sistema operacional, conhecida como injeção de comandos.
CISA KEV- Catálogo da CISA que registra vulnerabilidades com evidência de exploração no mundo real.
Mapeamentos de frameworks
- Referência CWE para a fraqueza descrita neste guia: CWE-78
- CISA KEV — adicionado em 2026-02-13 — CVE-2026-1731
Análise de Causa Raiz
O comunicado de fevereiro de 2026 da BeyondTrust descreve a CVE-2026-1731 como execução remota de código pré-autenticação no Remote Support e no Privileged Remote Access, com CWE-78 e CVSS 4.0 9,9. Solicitações especialmente criadas podiam executar comandos no contexto do usuário do site. A análise do patch pela Rapid7 localiza a fronteira no caminho WebSocket do thin-scc-wrapper: o script lê remoteVersion, controlado pelo par, e o compara com operadores numéricos do Bash. Esses operadores fazem avaliação aritmética; portanto, um valor que não seja um número simples pode ser interpretado como expressão. O patch exige um ou dois algarismos ASCII (^[0-9]{1,2}$) antes da comparação. O código abaixo é uma ilustração reduzida baseada em fontes, não é um script completo do produto nem uma prova de exploração. A BeyondTrust registrou tentativas iniciais em 10 de fevereiro e atividade limitada contra sistemas auto-hospedados expostos à internet e ainda sem correção antes de 9 de fevereiro. Depois, o Google Threat Intelligence Group relatou vários grupos explorando a CVE e ações posteriores distintas. Esses relatos comprovam atividade observada, mas não significam que todas as vítimas tiveram a mesma cadeia de comprometimento.
Fluxo de Ataque Passo a Paso
Um appliance público aceita a conexão de protocolo
O serviço afetado expõe um caminho WebSocket usado pelo protocolo de thin client. A Rapid7 descreve esse caminho como acessível sem autenticação; a BeyondTrust classifica a falha como RCE pré-autenticação.
O par informa a versão do protocolo
O wrapper lê da conexão um valor de versão remota. Esse valor é controlado pelo solicitante, não é configuração local confiável.
O Bash trata o valor como operando aritmético
A comparação vulnerável usa operadores numéricos do Bash. Como o Bash avalia operandos numéricos como expressões, uma entrada não validada não permanece necessariamente como dado inerte.
A injeção chega à conta de serviço
A exploração bem-sucedida pode executar comandos do sistema operacional no contexto do usuário do site BeyondTrust. O fornecedor classifica como alto o impacto em confidencialidade, integridade e disponibilidade.
A exploração observada aumenta o risco posterior
A BeyondTrust informou tentativas iniciais e atividade limitada contra appliances auto-hospedados, expostos à internet e sem correção. Mais tarde, o GTIG relatou vários grupos e ações subsequentes; cada relato é evidência específica de campanha, não uma cadeia universal.
A correção valida antes da comparação
O patch rejeita uma versão remota inválida e encerra o wrapper; somente um valor válido segue para a negociação do protocolo. Aplique o patch ou a versão corrigida do produto e investigue sistemas expostos enquanto vulneráveis.
Código-Fonte: Vulnerável vs. Seguro
A Rapid7 relata que o patch BT26-02 adiciona a validação de um ou dois algarismos antes de comparar remoteVersion. Os trechos são reduzidos e omitem o protocolo e os detalhes das solicitações. A propriedade essencial é validar antes da avaliação aritmética do Bash; aspas, por si só, não tornam operandos aritméticos seguros. Prefira analisar e comparar em um componente tipado que não invoque shell e rejeite entradas inválidas no limite do protocolo.
Trecho de origem: thin-scc-wrapper — ilustração reduzida baseada na análise do patch da Rapid7
# Exemplo reduzido: remoteVersion vem do par.
read -r remoteVersion || exit 1
if [[ "$localVersion" -lt "$remoteVersion" ]]; then
version=$localVersion
else
version=$remoteVersion
fi
# Rejeita entradas inesperadas antes de qualquer comparação aritmética.
read -r remoteVersion || exit 1
if [[ ! "$remoteVersion" =~ ^[0-9]{1,2}$ ]]; then
exit 1
fi
if [[ "$localVersion" -lt "$remoteVersion" ]]; then
version=$localVersion
else
version=$remoteVersion
fi
Lista de Verificação de Segurança para Engenharia
- ✓Inventarie todos os appliances Remote Support e Privileged Remote Access, inclusive os auto-hospedados sem atualização automática.
- ✓Aplique BT26-02-RS ou atualize o Remote Support para 25.3.2 ou posterior; aplique BT26-02-PRA ou atualize o Privileged Remote Access para 25.1.1 ou posterior, conforme o comunicado vigente da BeyondTrust.
- ✓Se o sistema auto-hospedado ficou exposto à internet e sem correção até 9 de fevereiro de 2026, siga as instruções de resposta a incidentes da BeyondTrust e procure acesso não autorizado, persistência, elevação de privilégio e acesso a dados.
- ✓Examine a telemetria de rede e aplicação em busca de sessões WebSocket inesperadas e processos ou comandos filhos incomuns iniciados pela conta do serviço; compare os alertas com o comportamento normal do appliance.
- ✓Em toda fronteira com shell, valide campos do protocolo por uma lista estrita antes de comparações numéricas; nunca encaminhe texto não confiável à aritmética do Bash, a
evalou a uma cadeia de comandos. - ✓Adicione testes de regressão para valores de versão vazios, longos demais, com sinal, espaços ou caracteres não decimais; exija rejeição antes de comparar ou iniciar processos.