FlawOpen

flawopen.com/Teardowns/cve-2026-1731-beyondtrust-websocket-command-injection

● CVE-2026-1731 · CVSS v4 9.9[1] · Crítica
Pesquisa · FlawOpen

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.

Vetor CVSSCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:H/SA:L[1]
💡 Explicação em Linguagem Simples (ELI5)

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

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

Passo 1

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.

Passo 2

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.

Passo 3

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.

Passo 4

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.

Passo 5

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.

Passo 6

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

IMPLEMENTAÇÃO VULNERÁVEL
# Exemplo reduzido: remoteVersion vem do par.
read -r remoteVersion || exit 1
if [[ "$localVersion" -lt "$remoteVersion" ]]; then
    version=$localVersion
else
    version=$remoteVersion
fi
PATCH SEGURO E ROBUSTO
# 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

Fontes