flawopen.com/Teardowns/cve-2026-76504-cisco-sdwan-api-authentication-bypass
CVE-2026-76504: desvio de autenticação no Cisco SD-WAN Manager
A CVE-2026-76504 permite que um atacante remoto não autenticado contorne uma regra de autenticação da API do Cisco Catalyst SD-WAN Manager e obtenha acesso à API como administrador. A Cisco confirma exploração ativa; atualize para a versão corrigida da sua ramificação e investigue o gerenciador antes de considerá-lo limpo.[1], [5]
Imagine uma porta protegida cujo controle de segurança reconhece apenas uma forma escrita do endereço. O invasor altera a grafia usando codificação de URI, e uma parte do sistema entende que é a mesma porta enquanto a regra de segurança não entende. A Cisco diz que essa divergência permitia ignorar a autenticação e acessar a API como administrador. A correção é tratar o endereço de forma consistente e aplicar a mesma regra de acesso; para operadores, a correção suportada pela Cisco é atualizar o software.[1]
Conceitos Centrais e Termos
Codificação de URI- Forma de representar caracteres em um caminho de URL usando bytes codificados por porcentagem. Todas as camadas precisam decodificar e comparar o caminho de maneira consistente.[1], [7]
Desvio de autenticação- Uma solicitação alcança uma função protegida sem que o sistema confirme a identidade do solicitante conforme exigido.[1]
Regra de sessão da API- Regra do gerenciador que verifica se uma solicitação à API tem uma sessão autenticada válida antes de chegar ao endpoint.[1]
Mapeamentos de frameworks
- Referência CWE para a fraqueza descrita neste guia: CWE-177
- OWASP Top 10:2025 — A01:2025 Broken Access Control
- CISA KEV — adicionado em 2026-09-30 — CVE-2026-76504
Análise de Causa Raiz
A Cisco atribui a CVE-2026-76504 ao tratamento inadequado da codificação de URI em solicitações HTTP na autenticação baseada em sessão da API do Catalyst SD-WAN Manager. Uma solicitação criada especialmente pode contornar uma regra de autenticação que restringe um endpoint específico da API e conceder acesso como administrador. A Cisco classifica o problema como CVSS 3.1 9,8 Crítico, informa que o produto é afetado independentemente da configuração e relata que sua equipe PSIRT tomou conhecimento de exploração ativa em setembro de 2026. O advisory mostra uma solicitação codificada a j_security_check como exemplo de IOC e alerta que qualquer caractere codificado na URI pode ser usado; não trate essa amostra como assinatura completa de detecção. A Cisco não publica o código vulnerável nem o diff do patch, portanto o par de código abaixo ilustra um projeto de autorização, não é código Cisco nem reprodução. A Cisco lista versões corrigidas por ramificação e diz que não há contorno que resolva totalmente a falha. Restrições de rede e o escudo Live Protect são mitigações temporárias; o escudo pode afetar logins legítimos e não substitui a atualização.[1], [5]
Versões corrigidas da CVE-2026-76504 por tipo de implantação
| Implantação / linha | Versão corrigida | Ação necessária |
|---|---|---|
| Versões locais anteriores à 20.9 | Migre para uma linha compatível com versão corrigida publicada. | Migre; não permaneça em uma linha antiga sem suporte. |
| Linha local 20.9 | 20.9.10.1 | Atualize todos os managers para esta versão ou posterior na linha compatível. |
| Linha local 20.12 | 20.12.8.2 | Atualize todos os managers para esta versão ou posterior na linha compatível. |
| Linha local 20.15 | 20.15.6.1 | Atualize todos os managers para esta versão ou posterior na linha compatível. |
| Linha local 20.18 | 20.18.4.1 | Atualize todos os managers para esta versão ou posterior na linha compatível. |
| Linha local 26.1 | 26.1.2.1 | Atualize todos os managers para esta versão ou posterior na linha compatível. |
| Linha local 26.2 | 26.2.1 | Atualize todos os managers para esta versão ou posterior na linha compatível. |
| Cisco SD-WAN Cloud (Cisco Managed) | 20.15.605 ou posterior; a Cisco informa que o serviço hospedado está corrigido. | Confirme que se trata do serviço gerenciado; não é necessária ação do cliente para essa atualização. |
Fluxo de Ataque Passo a Paso
Uma solicitação remota chega à API do gerenciador
Não é necessária conta nem interação do usuário. A exposição à internet aumenta o risco; o fornecedor diz que a falha vale independentemente da configuração.[1]
Dados de caminho codificados por URI contornam uma regra
A Cisco aponta tratamento inconsistente da codificação de URI na autenticação de sessão da API. O material público não revela a implementação vulnerável.[1]
Código-Fonte: Vulnerável vs. Seguro
A Cisco não publica o código vulnerável nem o diff da correção. Este exemplo Python mostra uma regra geral de projeto, não código Cisco: roteamento e autorização precisam usar um único destino de solicitação canônico e validado, e endpoints protegidos devem exigir uma identidade autenticada. Use a semântica de normalização documentada pelo roteador/framework; não adicione decodificação improvisada ou decodifique caminhos duas vezes. A remediação suportada para CVE-2026-76504 é atualizar para a versão corrigida da ramificação indicada pela Cisco.[1], [7]
Trecho de origem: Exemplo ilustrativo em Python de canonicalização de URI e limite de autorização; não é código Cisco
from urllib.parse import unquote, urlsplit
def dispatch(raw_target, session, routes):
# Uma camada verifica o caminho ainda codificado.
path_for_auth = urlsplit(raw_target).path
if path_for_auth.startswith("/api/") and session is None:
raise PermissionError("authentication required")
# Uma camada posterior decodifica antes de procurar a rota. As duas decisões podem divergir.
route_path = unquote(path_for_auth)
return routes[route_path]()
import re
from urllib.parse import unquote, urlsplit
def canonical_path(raw_target):
raw_path = urlsplit(raw_target).path
if re.search(r"%(?![0-9A-Fa-f]{2})", raw_path):
raise ValueError("malformed URI encoding")
path = unquote(raw_path, errors="strict")
if "%" in path or "\\" in path:
raise ValueError("ambiguous path encoding")
if any(part in {".", ".."} for part in path.split("/")):
raise ValueError("path traversal segment")
return path
def dispatch(raw_target, session, routes):
path = canonical_path(raw_target) # Decode and validate exactly once.
route = routes.get(path)
if route is None:
raise LookupError("route not found")
requires_authentication, handler = route
if requires_authentication and session is None:
raise PermissionError("authentication required")
return handler()
Lista de Verificação de Segurança para Engenharia
- ✓Inventarie todos os Catalyst SD-WAN Managers, incluindo membros de cluster e sites de recuperação de desastres; registre a ramificação e o build exatos.[1], [2]
- ✓Atualize cada gerenciador local para a primeira versão corrigida indicada pela Cisco dentro da versão principal atual; não avance para uma versão principal superior sem orientação explícita do TAC. Versões anteriores à 20.9 devem migrar para uma ramificação corrigida com suporte, seguindo as orientações de compatibilidade da Cisco.[1], [2]
- ✓Antes da atualização, colete arquivos admin-tech com Log e Tech selecionados de cada gerenciador, membro de cluster e site de DR; não espere os resultados dos IOCs para aplicar o patch.[2]
- ✓Abra um caso Cisco TAC Severity 3 com
CVE-2026-76504no título e envie os arquivos coletados para análise de IOCs; siga a remediação do TAC se houver comprometimento.[1], [2] - ✓Verifique
serviceproxy-access.logevmanage-server.logem busca de solicitaçõesj_security_checkde endereços desconhecidos ou não autorizados e atividades inesperadas de contasviptela-reserved-; trate%6acomo um exemplo, não uma assinatura completa.[1] - ✓Até atualizar todos os gerenciadores, restrinja o acesso de gerenciamento a hosts confiáveis e proteja os componentes de controle atrás de um filtro de tráfego; isso reduz temporariamente a exposição, mas não corrige a falha.[1]
- ✓Use o escudo Live Protect da Cisco somente como proteção parcial temporária, depois de avaliar os efeitos nos logins; mantenha a atualização do software no cronograma.[1]
- ✓No Cisco SD-WAN Cloud (Cisco Managed), confirme que o serviço informa a versão 20.15.605 ou posterior; a Cisco diz que a implantação gerenciada não exige ação do cliente.[1], [2]
Fontes
- Cisco Security Advisory — CVE-2026-76504
- Cisco remediation workflow for the September 2026 SD-WAN advisory
- Cyber Security Agency of Singapore active-exploitation advisory
- Canadian Centre for Cyber Security advisory AV26-978
- CISA Known Exploited Vulnerabilities Catalog — CVE-2026-76504
- NVD record — CVE-2026-76504
- MITRE CWE-177 — Improper Handling of URL Encoding