Uma vulnerabilidade de sobrefluxo de número inteiro no portal de túnel SSH opcional do servidor frp permite que qualquer atacante remoto não autêntico bloqueie todo o processo `frps` com uma única mensagem de cinco bytes. Quando o gateway analisa uma solicitação de canal SSH `exec` em `pkg/ssh/server.go`, adiciona uma pequena constante a um valor de quatro bytes tirado diretamente do pedido. Porque esse comprimento é totalmente controlado pelo atacante, um valor de ` 0 xFFFFFFFF` faz a adição embrulhar para um número pequeno, derrotando os únicos limites verificando e forçando uma fatia fora do alcance. Vá levantar um pânico que nada recupera, então o servidor inteiro sai. No modo gateway padrão, os clientes SSH não são autenticados e o pedido é tratado antes de qualquer token do frp ser assinado, por isso o crash é alcançável pré-autenticação. Ele não carrega nenhum estado e é trivialmente repetible, transformando um acidente em um apagão sustentado que cai em cada túnel para cada usuário. A carga útil do pedido `exec` é um comprimento de quatro Bytes Big- Endian seguido por muitos bytes de comandos, e o campo de comprimento é totalmente controlado pelo atacante. O gateway calcula o fim do comando como ` 4 + comprimento. A constante ` 4 ` toma o ` uint 32 ` tipo do campo de comprimento, então ` 4 + 0 xFFFFFFFF` enrola o módulo 2 ^ 32 para ` 3 `. O único guarda compara o tamanho real da carga útil com este valor embrulhado, por isso uma carga útil de cinco bytes passa pelo teste ` 5 < 3 `, e a fatia é executada a partir do índice 4 para indexar 3:.

```go // pkg/ ssh/ server.go: 315 - 319 fim:= 4 + binário.BigEndian.Uint 32 (req.Payload[: 4 ]) // 4 + 0 xFFFFFFFF enrola para 3 se len( req. Payload) pânico ``` O manipulador executa em uma gorotina nua e nenhuma função na cadeia de chamadas instala uma `recover`, assim o pânico desenrola- se até o topo da gorotina e termina todo o processo em vez da conexão única:.

```go // pkg/ ssh/ server.go: 226 ir s.handleNewChannel(newChannel, extraPayloadCh) // nenhum recuperação em qualquer lugar da cadeia ``` O lavatório é alcançável sem credenciais na configuração padrão. Quando nenhum arquivo de teclas autorizadas é definido, o gateway desativa a autenticação do cliente SSH, que é o modo padrão e documentado onde os usuários autentificam através do token frp incorporado no comando SSH. O pedido `exec` é processado durante a fase do canal, antes que esse token seja validado, para que um par não autêntico alcance o lavatório:.

```go // pkg/ ssh/gateway.go: 74 sshConfig.NoClientAuth = cfg.AutorizedKeysFile == "" // padrão: nenhum cliente auth ``` Produto afetado: frp (fatedier), servidor `frps`, Portal do túnel SSH versões afetadas: v 0.53.0 (quando o gateway foi introduzido) através de v 0.70.0, confirmado contra um v 0.70.0 compilar.

O portal do túnel SSH deve ser habilitado sem arquivo de chaves autorizadas, que é o modo padrão de qualquer implantação que ativa o portal. Não são necessárias credenciais e nenhum conhecimento do alvo. Habilitar o gateway em um stock v 0.70.0 compilar. ````toml bindPort = 7000.

[sshTunnelGateway] bindPort = 2200 ```. Como um cliente SSH não autenticado, abra um canal de sessão e envie um pedido de "exec" cujo prefixo de quatro-bytes é ` 0 xFFFFFFFF` seguido de um único byte, dando a carga útil de cinco bytes `ff ff ff ff 41 `. O servidor entra em pânico e sai imediatamente: ```` texto de pânico: erro de tempo de execução: cortar limites fora do alcance [ 4: 3 ]...github.com/fatedier/frp/pkg/ssh.(*TunnelServer.handleNewChannel.../frp/pkg/ssh/server.go: 319 ```.

O prompt de shell retorna no terminal do servidor, confirmando que todo o processo terminou e que todos os outros túneis do cliente são abandonados no mesmo instante. Um pedido bem formado do mesmo comprimento (prefixo ` 1 `) deixa o servidor em execução, provando que o crash é causado pelo valor de sobrecarga e não pelo próprio pedido `exec`. O atacante pode enviar novamente a carga útil após qualquer reinício para manter o servidor abaixado indefinidamente. Este é um remote não autenticado negação de serviço (CWE- 190 ) levando a um índice de array fora do alcance (CWE- 129 ) e um crash de processo descontrolado (CWE- 755 ). Uma única mensagem sem credenciais de cinco bytes mata todo o processo `frps`. Como um `frps` comumente multiplexa os túneis de muitos clientes, o acidente deixa cair cada túnel ativo para cada inquilino de uma vez e novos logins são recusados até que o processo seja reiniciado, e reenviar a carga útil após cada reinicio mantém o serviço apagado indefinidamente (CWE-- 400 ). Não há nenhum impacto de confidencialidade ou integridade e nenhuma execução de código.

Esta questão só afeta as instâncias do frps com o gateway do túnel SSH explicitamente habilitado. O gateway do túnel SSH está desativado por padrão e não é comumente usado nas implantações típicas do frps. As configurações padrão do frps não são afetadas. Registro de aconselhamento: GHSA- 26 gq- p 25 f- 99 cp. Identificadores relacionados: CVE- 2026 - 73564.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 24 T 21: 48: 04.000 Z e lista a sua última modificação como 2026 - 08 - 13 T 17: 35: 53.000 Z. Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/África do Sul:N.

Software afetado e informações de versão: Vá pacote github.com/fatedier/frp — ECOSISTEM: introduzido 0.53.0, corrigido 0.70.1. Classificação e evidência: identificadores de fraqueza CWE- 129, CWE- 190. O registro contém 5 suporte de referências nestes tipos: WEB, PACKAGE.