# CVE-2026-4600 - Falsificação de Assinatura DSA via Parâmetros de Domínio Maliciosos
> [!high] CVSS 9.1 - Crítico - Falsificação de Assinatura DSA na Biblioteca jsrsasign
> Verificação criptográfica inadequada (CWE-347) na biblioteca JavaScript **jsrsasign** (versões anteriores a 11.1.1) permite forjar assinaturas DSA e certificados X.509 aceitos como legítimos fornecendo parâmetros de domínio maliciosos (`g=1`, `y=1`, `r=1`). PoC disponível via Snyk. Patch na versão 11.1.1.
## Visão Geral
CVE-2026-4600 é uma vulnerabilidade de **verificação criptográfica inadequada** (CWE-347) na biblioteca JavaScript [[jsrsasign]], amplamente utilizada em aplicações Node.js para operações de assinatura digital e válidação de certificados. A falha afeta a função `KJUR.crypto.DSA.setPublic` e o fluxo de verificação em `src/dsa-2.0.js`: ao fornecer parâmetros de domínio DSA maliciosos como `g=1`, `y=1` com `r=1`, a equação matemática de verificação se torna trivialmente verdadeira para qualquer hash, permitindo que qualquer assinatura DSA forjada seja aceita como válida pela função `X509.verifySignature()`.
O impacto prático é severo para sistemas que dependem de assinatura DSA para autenticação: qualquer atacante pode criar documentos ou tokens com assinaturas fraudulentas aceitas como legítimas pelo código vulnerável, contornando controles de autenticação e integridade. Esta CVE faz parte de um cluster de quatro vulnerabilidades descobertas na biblioteca jsrsasign em março de 2026: [[cve-2026-4601|CVE-2026-4601]] (recuperação de chave privada, CVSS 9.1), CVE-2026-4599 (nonces tendenciosos, CVSS 9.1) e CVE-2026-4602 (expoente negativo, CVSS 7.5). As TTPs relevantes incluem [[t1190-exploit-public-facing-application|T1190]] e [[t1588-obtain-capabilities|T1588]].
> [!latam] Relevância LATAM
> A biblioteca jsrsasign é amplamente utilizada em aplicações Node.js de fintechs e plataformas de pagamento que operam no Brasil e América Latina. Sistemas que utilizam verificação de assinaturas DSA ou válidação de certificados X.509 via jsrsasign para transações do setor [[financial|financeiro]] estão diretamente expostos. A atualização para jsrsasign 11.1.1 é obrigatória; equipes de desenvolvimento devem auditar dependências transitivas e considerar migração de DSA para ECDSA, algoritmo considerado mais moderno e seguro.
## Resumo
**CVE-2026-4600** é uma vulnerabilidade do tipo **Improper Verification of Cryptographic Signature** (CWE-347) encontrada na biblioteca JavaScript [[jsrsasign]] em versões anteriores a 11.1.1. A falha afeta a válidação de parâmetros de domínio DSA na função `KJUR.crypto.DSA.setPublic` e no fluxo de verificação DSA/X509 em `src/dsa-2.0.js`.
Um atacante pode forjar assinaturas DSA ou certificados X.509 que a função `X509.verifySignature()` aceita como legítimos, fornecendo parâmetros de domínio maliciosos como `g=1`, `y=1` e um valor fixo `r=1`, tornando a equação de verificação verdadeira para qualquer hash. A vulnerabilidade foi descoberta por **Kr0emer** e divulgada públicamente em 16 de fevereiro de 2026.
**Pontuação de risco:**
- CVSS v3.1: **9.1** (Crítico)
- EPSS: Em análise pelo NVD
- CISA KEV: Não listado
- Exploit público: Proof-of-concept disponível (Snyk - SNYK-JS-JSRSASIGN-15370940)
## Impacto Técnico
Um atacante que explore esta vulnerabilidade com sucesso pode:
- **Falsificação de assinatura digital:** aceitar como válidas assinaturas DSA e certificados X.509 totalmente forjados
- **Bypass de autenticação:** contornar sistemas de autenticação baseados em certificados DSA
- **Comprometimento de integridade:** aceitar mensagens ou documentos não autorizados como legítimos
- **Ataques à cadeia de confiança:** forjar certificados X.509 aceitos por aplicações que dependem da biblioteca
**Impacto para organizações LATAM/Brasil:**
jsrsasign é amplamente utilizado em aplicações Node.js, especialmente em fintechs, plataformas de pagamento e serviços de autenticação que operam no Brasil e América Latina. Aplicações que utilizam verificação de assinaturas DSA ou válidação de certificados X.509 via jsrsasign são diretamente afetadas. O risco é elevado para sistemas de [[financial|setor financeiro]] que dependem de assinatura digital para transações.
## Produtos Afetados
| Vendor | Produto | Versão Afetada | Versão com Fix |
|--------|---------|----------------|----------------|
| jsrsasign | jsrsasign (npm) | < 11.1.1 | 11.1.1 |
**Não afetado:** jsrsasign versão 11.1.1 ou superior com patch aplicado.
## Patch e Mitigação
**Patch oficial:**
- Snyk Advisory: SNYK-JS-JSRSASIGN-15370940
- Versão corrigida: **11.1.1**
- Data de lançamento do patch: 2026-03-22
**Como aplicar:**
1. Verificar a versão atual: `npm list jsrsasign`
2. Atualizar para a versão segura: `npm install
[email protected]` ou `npm update jsrsasign`
3. Verificar em `package.json` que não há restrições que impeçam o upgrade
4. Reiniciar os serviços/aplicações após a atualização
5. Auditar o código para identificar todos os pontos que utilizam `KJUR.crypto.DSA.setPublic` ou `X509.verifySignature()`
**Mitigações temporárias** (quando patch não é imediatamente possível):
- Desabilitar funcionalidades que dependem de verificação DSA ou X.509 se não forem críticas
- Substituir verificação DSA por ECDSA ou RSA, menos afetados por este tipo de ataque
- Implementar válidação adicional de parâmetros de domínio antes de chamar a função vulnerável
## Exploração Ativa
**Status atual:** PoC público disponível - sem evidência de exploração ativa em larga escala
**Evidências de exploração:**
- Snyk (2026-03-22): Proof-of-concept públicado - verificação com parâmetros `g=1`, `y=1`, `r=1` contorna toda válidação de assinatura DSA
**Campanhas associadas:** Nenhuma campanha documentada até o momento.
## CVEs Relacionados (Família jsrsasign)
Esta CVE faz parte de um cluster de vulnerabilidades descobertas na biblioteca jsrsasign:
- [[cve-2026-4601|CVE-2026-4601]] - Missing Cryptographic Step em assinatura DSA (recuperação de chave privada) · CVSS 9.1
- **CVE-2026-4599** - Recuperação de chave privada via nonces DSA tendenciosos · CVSS 9.1
- **CVE-2026-4602** - Bypass de verificação via tratamento de expoente negativo · CVSS 7.5
- **CVE-2026-4603** - DoS via divisão por zero em operações JSON Web Key · CVSS 5.9
## CISA KEV
Esta vulnerabilidade **não está listada** no CISA KEV Catalog. Monitorar atualizações caso evidências de exploração ativa em produção se tornem disponíveis.
## Notas Relacionadas
**CVEs relacionados:** [[cve-2026-4601|CVE-2026-4601]] · [[cve-2026-4599|CVE-2026-4599]]
**TTPs relacionadas:** [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]] · [[t1588-obtain-capabilities|T1588 - Obtain Capabilities]]
**Setores em risco:** [[financial]] · [[technology]]
## Referências
- [NVD - CVE-2026-4600](https://nvd.nist.gov/vuln/detail/CVE-2026-4600)