---
title: "Go 1.26.6 corrige 10 falhas na cadeia de módulos e na stdlib"
url: "https://golang.com.br/novidades/go-1-26-6-seguranca-cadeia-modulos/"
markdown_url: "https://golang.com.br/novidades/go-1-26-6-seguranca-cadeia-modulos.MD"
description: "Go 1.26.6 corrige 10 falhas de segurança, incluindo bypass no checksum de módulos, XSS em templates e ataques de negação de serviço."
date: "2026-08-17"
author: "Go Brasil"
---

# Go 1.26.6 corrige 10 falhas na cadeia de módulos e na stdlib

Go 1.26.6 corrige 10 falhas de segurança, incluindo bypass no checksum de módulos, XSS em templates e ataques de negação de serviço.


TL;DR: o Go 1.26.6 e o Go 1.25.13 corrigem **dez vulnerabilidades**, duas delas na verificação da cadeia de módulos. Em cenários com `GOPROXY` malicioso — e, em um caso, `GOSUMDB` coordenado — conteúdo adulterado podia passar pela validação e chegar ao cache local. A atualização também fecha falhas de XSS em `html/template`, consumo excessivo de recursos em TLS, HTTP, XML, ASN.1 e URLs, além de problemas em IDNA e DNS. Atualize o toolchain, recompile os binários e examine projetos que tenham usado proxies de módulos não confiáveis.

## As falhas mais críticas estão na cadeia de módulos

O lançamento de 13 de agosto de 2026 dá atenção especial a duas falhas no mecanismo que protege downloads de módulos Go.

A **CVE-2026-56865** estava em `x/mod/sumdb/tlog`. Um `GOPROXY` malicioso podia forjar até dois *tiles* do log de transparência, fazer conteúdo de módulo controlado pelo atacante passar pela consulta ao `GOSUMDB` e persistir esse conteúdo no cache local. A correção passa a verificar corretamente cada tile contra seus pais.

A **CVE-2026-56864** afetava `x/mod/sumdb`. Um `GOSUMDB` malicioso podia devolver hashes não autenticados e não relacionados à consulta. Com um proxy e um servidor de checksums agindo em conjunto, o cliente podia aceitar conteúdo ausente do log de transparência.

Isso não significa que qualquer uso normal de `proxy.golang.org` foi comprometido. O cenário exige infraestrutura maliciosa ou comprometida. O risco cresce em empresas que configuram proxies privados, espelhos internos ou variáveis como `GOPROXY` e `GOSUMDB` em imagens de CI sem acompanhar sua procedência. Como módulos baixados ficam em cache e a biblioteca padrão é incorporada ao binário, atualizar apenas uma máquina de desenvolvimento não basta.

## Como verificar projetos potencialmente afetados

O anúncio oficial recomenda recriar os arquivos de checksums e o diretório de *vendor*:

```bash
rm -r go.sum go.work.sum vendor/
go mod tidy
```

Faça isso **em um checkout limpo ou descartável**, pois o comando remove arquivos e `go mod tidy` pode produzir mudanças legítimas conforme o estado atual do módulo. Depois, revise o resultado com `git diff` e rode a suíte de testes. Em repositórios sem `go.work.sum` ou `vendor/`, ajuste o comando para não falhar por arquivos inexistentes.

Também vale auditar a configuração efetiva:

```bash
go env GOPROXY GOSUMDB GOPRIVATE GONOSUMDB
go version
go test ./...
```

Se a organização mantém proxy próprio, confira logs, controles de acesso e a origem dos artefatos armazenados. A validação oficial é especialmente importante para builds feitos enquanto um proxy suspeito estava configurado.

## Oito correções na biblioteca padrão e em x/net

As demais vulnerabilidades cobrem superfícies comuns de aplicações de produção:

- **`encoding/xml` (CVE-2026-56859):** `DecodeElement` podia neutralizar o contador de profundidade e permitir exaustão da pilha com XML recursivo.
- **`net/http` (CVE-2026-56853):** a detecção de HTTP/2 sem criptografia lia o prefácio da conexão sem aplicar `ReadHeaderTimeout`.
- **`net/url` (CVE-2026-56860):** caminhos relativos com muitos segmentos `..` provocavam complexidade quadrática e muitas alocações.
- **`x/net/dns/dnsmessage` (CVE-2026-46600):** registros SVCB ou HTTPS inválidos podiam causar `panic` durante o parsing.
- **`crypto/tls` (CVE-2026-56862):** um cliente podia enviar mensagens `KeyUpdate` indefinidamente e forçar derivações de chave contínuas no servidor.
- **`html/template` (CVE-2026-56858):** entradas patológicas confundiam o rastreamento de contexto de expressões regulares JavaScript, possibilitando injeção de conteúdo e XSS.
- **`x/net/idna` (CVE-2026-39821):** rótulos Punycode que decodificavam apenas para ASCII eram aceitos indevidamente, criando risco de escalada de privilégio em validações de hostname.
- **`encoding/asn1` (CVE-2026-33818):** estruturas profundamente aninhadas podiam esgotar a pilha; agora há limite de recursão.

O alcance é amplo: APIs HTTP, clientes TLS, sistemas que processam XML ou certificados, templates com JavaScript, resolutores DNS e aplicações que normalizam domínios devem tratar o patch como atualização de segurança, não como manutenção opcional.

## Plano de atualização

Projetos na linha atual devem migrar para **Go 1.26.6**; quem ainda precisa permanecer na linha anterior deve usar **Go 1.25.13**. Atualize a imagem de build, versões fixadas no CI e o campo `toolchain` quando aplicável. Em seguida, recompile e redistribua todos os binários: executar `go get` não corrige código vulnerável já embutido a partir da biblioteca padrão.

Um fluxo mínimo inclui `go test ./...`, testes de integração e `govulncheck ./...`. Para serviços expostos à internet, priorize componentes que aceitam entradas não confiáveis nos pacotes citados. Para a cadeia de módulos, compare builds reproduzidos em ambiente limpo e revise qualquer divergência inesperada em checksums ou conteúdo vendorizado.

## Saiba mais

- [Anúncio oficial do Go 1.26.6 e Go 1.25.13](https://groups.google.com/g/golang-announce/c/94pEornpRlI)
- [Notas de release do Go 1.26.6](https://go.dev/doc/devel/release#go1.26.6)
- [Política de segurança do projeto Go](https://go.dev/doc/security/policy)
- [govulncheck em Go: vulnerabilidades que importam](/blog/govulncheck-go-vulnerabilidades-dependencias/)
