| Versão | Suporte |
|---|---|
| 0.1.x (snapshots) | correções de segurança aplicadas no main |
| 0.x | API instável por contrato (ADR-010/SemVer: quebras entre minors são permitidas até 1.0.0) |
Reporte vulnerabilidades da versão mais recente do main.
O Trace2Local é uma ferramenta de desenvolvimento local com consequências de segurança declaradas, não acidentais:
- Bind loopback por padrão — a UI e a API só escutam em
127.0.0.1; expor fora exigetrace2local.allow-non-loopback=true(ouTRACE2LOCAL_ALLOW_NON_LOOPBACK=trueno Station) e emite avisos. - Redaction NA ORIGEM (SPEC §8.3) — payloads, atributos e chaves
sensíveis são redigidos antes de entrar no buffer; a UI nunca vê o dado
cru. Cobertura: chaves (
password,token,authorization,apiKey,jwt,otp,privateKey, CPF/CNPJ/card…) e padrões de valor (email, JWT, chaves AWSAKIA…, PEM,Bearer …, CPF/CNPJ, cartão com Luhn, tokens GitHubghp_…, hashes bcrypt/argon2). Mitigação, não garantia — campo de negócio com nome inocente passa (limite declarado). - Token de ingest opcional — com
trace2local.station.token(TRACE2LOCAL_STATION_TOKEN), as rotas de ingest do Station (/v1/tracese/t2lingest/v1/mutations) exigemAuthorization: Bearer <token>(comparação em tempo constante); o modo Lambda e o starter enviam o header automaticamente. Recomendado sempre queallow-non-loopback=true. - Limites de entrada — corpo do OTLP ≤ 16 MB, canal de mutação ≤ 8 MB, API da UI ≤ 1 MB; ring buffer com descarte declarado na borda (ADR-006).
- Hardening HTTP — CSP
default-src 'self'(semunsafe-inline),X-Frame-Options: DENY,X-Content-Type-Options: nosniff,Referrer-Policy: no-referrer,Cache-Control: no-storenas respostas de API (execuções carregam payloads), sem CORS aberto, path traversal bloqueado no servidor estático.
- A UI/API de inspeção não têm autenticação: quem alcança a porta vê o acervo. Por isso o loopback é obrigatório por padrão e a exposição é uma decisão explícita. Se você precisa de acesso remoto à UI, coloque um proxy autenticado na frente (SSH tunnel ou reverse proxy com auth).
- O token protege apenas o ingest (
/v1/traces,/t2lingest/v1/mutations); as rotas da UI continuam locais. - Redaction é mitigação de vazamento acidental, não proteção contra atacante com acesso ao processo.
- O Station não faz TLS: use em rede local ou atrás de um proxy TLS.
Auditoria de CVEs das versões pinadas (set/2026, GitHub Advisory DB + NVD + OSV): nenhuma versão pinada está afetada por CVE conhecido.
- Não rebaixar: Jackson
2.22.2e AssertJ3.27.7são exatamente as versões mínimas corrigidas (CVE-2026-68497 / CVE-2026-24400). - Nota de supply-chain: jqwik
1.10.1(só em testes de propriedade do núcleo) — a 1.10.0 foi retirada por protestware contra agentes de IA; a 1.10.1 removida o conteúdo destrutivo, mas ainda emite texto de prompt-injection opt-in. Decisão registrada: manter (dependência dev-only, sem CVE; a saída da biblioteca é tratada como dado não confiável). - AWS CRT transitivo (
aws-crt0.48.4) contém oaws-c-httpcorrigido para CVE-2026-12043 (verificado em nível de submodule) — relevante apenas se o cliente CRT HTTP/S3 for usado.
Novas versões são auditadas no bump (política: manter pinos ≥ versão corrigida).
- Canal preferencial: GitHub Security Advisory privado em https://github.com/thiago701/trace2local/security/advisories/new
- E-mail:
[email protected](PGP sob demanda)
Política: resposta em até 7 dias úteis; correção publicada no main com
entrada no CHANGELOG.md; crédito ao reportante (a menos que prefira anonimato).