CodeQL 2.27.2 melhora análise de C++, Go, Rust e JavaScript no scanner do GitHub
Versão lançada em 9 de outubro de 2026 adiciona parser de regex em C++, novos modelos de fluxo em Go e Rust e suporte ao Workflow SDK em JavaScript, mas também traz um breaking change silencioso para quem mantém queries customizadas.

O GitHub lançou em 9 de outubro de 2026 a versão 2.27.2 do CodeQL, o motor de análise estática por trás do code scanning da plataforma. É a ferramenta que varre repositórios atrás de SQL↳SQL64 conteúdosSQL Server – Como evitar SQL Injection?Data · mai 2019Azure SQL DB Managed InstanceData · abr 2019SQL Server – Como evitar SQL Injection? Pare de utilizar Query Dinâmica como EXEC(@Query)Data · abr 2019Ver tudo em Data → injection, XSS, path traversal e outras classes de falha antes que o código chegue à produção. Segundo o changelog oficial do GitHub, a suíte padrão (Default) roda 498 queries de segurança cobrindo 170 CWEs, e a suíte estendida (Extended) adiciona mais 131 queries para outros 32 CWEs.
Para quem já usa code scanning no GitHub.com, a atualização é automática: nada para instalar. Quem roda CodeQL em GitHub Enterprise Server ou via CLI própria (em pipelines de CI/CD↳CI/CD23 conteúdosCI/CD Mobile: o caos invisível que separa times comuns de times de alta performanceDev (Back & Front) · abr 2026Lambda: implementando com GitLab CI/CD e Terraform para Integração SFTP, S3 e Databricks em GoDev (Back & Front) · nov 2023Publicando sua aplicação Web Python no WebApp do Azure e configurando o CI/CD da sua aplicaçãoDevSecOps · abr 2019Ver tudo em DevSecOps → fora do github.com) precisa atualizar manualmente, e é aí que vale prestar atenção nos detalhes abaixo, porque pelo menos uma mudança quebra compatibilidade.
C++ ganha parser de expressões regulares
A novidade mais concreta para quem mantém código C++↳C++6 conteúdosSão Paulo recebe encontro de Programadores C & C++Dev (Back & Front) · mai 2019Melhores linguagens de programação para desenvolver jogosMarketing Tech · nov 2024Desmistificando Rust: a linguagem segura e rápida que você precisa conhecerDev (Back & Front) · out 2024Ver tudo em Dev (Back & Front) → em produção é o novo parser de regex: o CodeQL agora entende expressões escritas na gramática ECMAScript dentro de std::regex. Isso importa porque regex mal escrita é fonte clássica de ReDoS (negação de serviço por expressão regular catastrófica) e de bypass de validação de entrada. Antes, esse tipo de padrão passava batido pela análise estática; agora o scanner consegue inspecionar o que está dentro do regex, não só o fato de que ele existe.

O release também adiciona sink models de SQL injection para a API C do Comdb2 e flow summaries para codecs do Bloomberg BDE e para deserializadores de byte-stream. Na prática, são bibliotecas de uso mais corporativo/financeiro, então quem trabalha com stacks de trading ou sistemas legados em C++ ganha cobertura que antes exigia query customizada.
Go: nova lib de WebSocket e um breaking change que exige atenção
O CodeQL passou a modelar o import github.com/coder/websocket, além do já suportado nhooyr.io/websocket. É um ajuste pequeno, mas resolve um ponto de atrito real: times que migraram de uma lib para outra perdiam cobertura de taint tracking em conexões WebSocket sem perceber.
A mudança que pede mais cuidado é estrutural. O grafo de controle de fluxo (CFG) do Go agora usa a shared CFG library, a mesma base compartilhada com outras linguagens. Isso muda nós, arestas, localizações, representação textual e os limites de basic block do grafo. Quem mantém queries CodeQL customizadas para Go precisa revisar o código, porque:
BasicBlocks::Cfgfoi removida;ControlFlow::EntryNode,ControlFlow::ExitNodeeSwitchStmt.getExprforam adicionados;IfStmt.getCondestá depreciado em favor deIfStmt.getCondition;- os tipos de retorno de
IfStmt.getTheneLoopStmt.getBodymudaram paraStmt; - várias classes de instrução IR foram consolidadas.
Se o time usa só as queries padrão do GitHub, nada muda na prática. Se existe uma query própria escrita contra a API antiga do CFG, ela pode simplesmente parar de compilar ou, pior, compilar e dar resultado diferente do esperado.
Rust: melhor análise de async e novas classes no extractor
O extractor de Rust ganhou suporte às classes AnyAttr e DocComment, o que melhora a capacidade do CodeQL de entender atributos e documentação ao fazer parsing do código. Mais relevante para segurança é a melhoria no data flow de blocos async usados com await: código assíncrono historicamente é ponto cego de analisadores estáticos, porque o fluxo de dados não segue a ordem textual do código.
O release também adiciona flow summaries para native-tls, async-native-tls e tokio-native-tls. São crates de TLS amplamente usadas em serviços Rust que fazem chamadas de rede; com os flow summaries, o CodeQL consegue rastrear dados sensíveis (como tokens ou credenciais) que atravessam essas bibliotecas, algo que antes exigia modelagem manual.
JavaScript/TypeScript: Workflow SDK e rotas Hapi
O CodeQL agora reconhece as diretivas "use workflow" e "use step" do Workflow SDK, um padrão que vem ganhando tração em código que orquestra tarefas assíncronas de longa duração. Sem esse reconhecimento, o analisador tratava esses blocos como código comum e podia perder o rastro de dados que entram e saem das etapas do workflow.
Também melhorou o tracking de rotas e de entrada de requisição no Hapi, cobrindo helpers de registro de rota customizados e funções de ordem superior (higher-order functions) usadas para compor handlers. Esse é o tipo de ajuste que resolve falso negativo silencioso: APIs Hapi que usam abstrações próprias em cima do framework passavam despercebidas pelas queries de XSS e injeção antes dessa melhoria.
macOS 27 quebra build automático para linguagens compiladas
Esta é a mudança que mais pega quem roda CI em runners macOS. Com o lançamento do macOS 27 e do Xcode 27, a Apple parou de distribuir binários multi-arquitetura x86-64/arm64, que o CodeQL precisa para fazer análise traced (quando ele observa o build real do projeto). Resultado: os modos autobuild e manual build do CodeQL deixam de funcionar para linguagens compiladas no macOS 27, com qualquer versão de Xcode, e também no macOS 26 quando o Xcode 27 está selecionado.
O GitHub recomenda, por enquanto, travar em macOS 26 com Xcode 26 para quem depende desses modos de build. Times com runners macOS fazendo code scanning de C, C++, Go ou outras linguagens compiladas devem checar a combinação de SO e Xcode antes de atualizar a toolchain, sob risco do scan simplesmente parar de funcionar sem erro claro. O GitHub diz estar trabalhando para melhorar o suporte ao build mode none no macOS como mitigação.
Outros ajustes: C#, GitHub Actions e CLI
A query cs/web/missing-x-frame-options do C# agora reconhece cabeçalhos de resposta do ASP.NET Core e diretivas frame-ancestors de Content Security Policy como proteção válida contra clickjacking, reduzindo falso positivo em APIs que já usam CSP moderno em vez do header legado X-Frame-Options. Já a cs/web/xss parou de tratar valores de atributo de tag helper do Razor escritos via WriteLiteral como sink de XSS.
Para GitHub Actions, a query actions/unpinned-tag agora permite remover owners do conjunto de confiança prefixando a entrada com !, como em !github, o que permite reportar tags não fixadas até de organizações first-party quando a política de segurança exigir isso.
Na CLI, erros de configuração de suíte (qlpack: e from: inválidos) agora aparecem como mensagem clara em vez de derrubar o processo, e inteiros fora do range de 32 bits com sinal em extensões de dado YAML passam a ser rejeitados em vez de truncados silenciosamente, o que evita bug sutil em configurações customizadas de dataExtensions.
Vale atualizar agora?
Para quem usa code scanning direto no github.com, não há decisão a tomar: a atualização já está ativa. Para quem roda CodeQL via GHES ou CLI própria em pipeline de CI/CD, o caminho recomendado é: primeiro, checar se existe query customizada em Go que referencie a API antiga de BasicBlocks::Cfg, IfStmt.getCond ou os tipos de retorno alterados; segundo, se o CI roda em macOS, confirmar a combinação de versão de SO e Xcode antes de atualizar ferramentas. Fora isso, as melhorias em C++, Rust e JavaScript/TypeScript chegam sem exigir nenhuma mudança de configuração, só cobertura extra na próxima varredura.
Fonte: GitHub Changelog
Este artigo foi escrito por Bisneto Braga, colunista de back-end. Conteúdo produzido por agente de IA da redação iMasters, sob revisão editorial humana. Saiba como produzimos no expediente.
Java 25 segue com a Structured Concurrency em preview: dá para usar em produção?
A StructuredTaskScope do JEP 505 segue em quinta preview no Java 25, trocando ExecutorService e Future por um bloco que cancela e propaga erro sozinho, mas ainda depende da flag --enable-preview para compilar e rodar.













