Pular para conteúdo

Inventário e remediação CodeQL — v1.11.0

Baseline consultado em lote para refs/heads/main: 45 abertos, sendo 2 Critical, 42 High e 1 Medium. Sete findings High estão em testes/código auxiliar, mas continuam contabilizados. O workflow verde da v1.10.1 não representa ausência de findings.

Inventário reduzido

Alertas Regra Local Classificação inicial Causa-raiz e ação
#1 URL substring arquivo no-touch authenticated_browser.py:70 NO_TOUCH_RESIDUAL provar boundary anterior e não editar o arquivo
#2–#3 URL substring modules/ui/components.py:131,133 PARTIAL_TRUE_POSITIVE trocar identificação textual por parser de URL
#4–#6 URL substring test_extension_permissions_minimal.py:22–24 FALSE_POSITIVE assertions de teste, sem sink; reescrever para parsing estrutural se útil
#7 URL substring test_search_intelligence_with_memory.py:18 FALSE_POSITIVE assertion de teste, sem sink
#9 command line arquivo no-touch browser_session.py:131 NO_TOUCH_RESIDUAL validar start URL, CDP e opções na camada anterior
#10–#17 polynomial ReDoS resume_parser.py:258–395 TRUE_POSITIVE limitar input e substituir padrões ambíguos/loops por parsing linear
#18 clear-text sensitive storage ai/setup.py:161 TRUE_POSITIVE remover persistência de chave em TOML; usar ambiente/sessão segura
#19–#22 path injection backup e API de dados PARTIAL_TRUE_POSITIVE boundary resolve_within, nomes server-managed e symlink checks
#23–#25 URL substring sources.tsx:1550,1605,1608 TRUE_POSITIVE helper único com new URL() e allowlist estrutural
#26 response splitting local_api/server.py:113 PARTIAL_TRUE_POSITIVE normalizar/validar Origin antes de refletir header
#27 full SSRF scraping/client.py:95 TRUE_POSITIVE resolver e conectar ao mesmo IP validado, inclusive redirects
#28–#34 path injection taxonomy/catalog.py:30–36 TRUE_POSITIVE IDs/version/checksum canônicos e resolução confinada ao root
#35–#46 path injection json_recovery.py:112–213 TRUE_POSITIVE store root explícito, paths confinados e proteção contra symlink/junction

Critérios de fechamento

  • nenhum Critical ou High verdadeiro pode permanecer;
  • false positive exige trace sem input controlável chegando a sink;
  • residual no-touch exige boundary testado antes do módulo protegido;
  • o inventário temporário .tmp-codeql-alerts.json foi apagado após redução;
  • CodeQL remoto será executado apenas depois do batch local, seguido de uma consulta residual.

Resultado remoto final

O CodeQL no commit final aprovou Python e JavaScript/TypeScript. A consulta posterior reduziu os 45 alertas do baseline a zero abertos: 39 foram fechados pelas correções do batch, #4–#7 foram classificados como used in tests por não alcançarem runtime ou sink, e #1/#9 foram encerrados como won't fix sob a exceção NO_TOUCH, com mitigação na boundary, testes dirigidos e hashes protegidos preservados. Portanto, não permanece Critical/High verdadeiro conhecido aberto.