Skip to main content

Consultas Java e Kotlin para análise CodeQL

Explore as consultas que o CodeQL usa para analisar o código escrito em Java ou Kotlin quando você seleciona o conjunto de consultas default ou security-extended.

Quem pode usar esse recurso?

A Code scanning está disponível para todos os repositórios públicos do GitHub.com. A Code scanning também está disponível em repositórios privados pertencentes às organizações que usam o GitHub Enterprise Cloud e que têm uma licença do GitHub Advanced Security. Para obter mais informações, confira "Sobre a Segurança Avançada do GitHub".

O CodeQL inclui muitas consultas para analisar código Java e Kotlin. Todas as consultas no conjunto de consultas default são executadas por padrão. Se você optar por usar o conjunto de consultas security-extended, consultas adicionais serão executadas. Para obter mais informações, confira "Conjuntos de consultas CodeQL".

Observação: atualmente, a análise do CodeQL para Kotlin está em versão beta. Durante a versão beta, a análise do CodeQL para Kotlin será menos abrangente do que para outras linguagens.

Consultas internas para análise Java e Kotlin

Esta tabela lista as consultas disponíveis com a versão mais recente da ação CodeQL e CodeQL CLI. Para obter mais informações, consulte Logs de alterações do CodeQL no site de documentação do CodeQL .

Observação: a correção automática do GitHub para o code scanning está em beta. A funcionalidade e a documentação estão sujeitas a alterações. Durante essa fase, o recurso está restrito a alertas JavaScript, TypeScript, Phyton e Java identificados pelo CodeQL. Se você tiver uma conta empresarial e usar GitHub Advanced Security, sua empresa terá acesso à versão beta.

Nome da consultaCWEs relacionadosPadrãoEstendidoCorreção automática
TrustManager que aceita todos os certificados295
Android WebView que aceita todos os certificados295
Atributo depurável do Android habilitado489
Injeção de fragmento do Android470
Injeção de fragmento do Android em PreferenceActivity470
Redirecionamento de intenção do Android926, 940
Depuração do Android Webview habilitada489
Acesso arbitrário a arquivos durante a extração de arquivos ("Zip Slip")022
Criar uma linha de comando com concatenação de cadeia de caracteres078, 088
Armazenamento de texto não criptografado de informações confidenciais no cookie315
Cross-site scripting079
Depender do JCenter/Bintray como um repositório de artefatos1104
Desserialização de dados controlados pelo usuário502
Detectar vulnerabilidade do gerador JHipster CVE-2019-16303338
Validação de cabeçalho Netty HTTP desabilitada93, 113
Proteção Spring CSRF desabilitada352
Injeção de linguagem de expressão (JEXL)094
Injeção de linguagem de expressão (MVEL)094
Injeção de linguagem de expressão (Spring)094
Falha ao usar HTTPS ou URL SFTP no upload/download de artefatos do Maven300, 319, 494, 829
Falha no uso de cookies seguros614
Injeção de linguagem Groovy094
Divisão de resposta HTTP113
Conversão de estreitamento implícito na atribuição composta190, 192, 197, 681
Componente Android exportado implicitamente926
Verificação indevida da intenção pelo receptor de transmissão925
Expressão regular ineficiente1333, 730, 400
Exposição de informações por meio de um rastreamento de pilha209, 497
Validação de Bean não seguro094
Autenticação LDAP não segura522, 319
Autenticação local insegura287
Aleatoriedade não segura330, 338
Manipulação de permissão de URI de intenção266, 926
Pesquisa JNDI com nome controlado pelo usuário074
Consulta LDAP criada com base em fontes controladas pelo usuário090
Verificação de assinatura JWT ausente347
Instrução OGNL Expression Language com entrada controlada pelo usuário917
Intervalo de expressão regular excessivamente permissivo020
Vulnerabilidade de travessia de caminho parcial de remoto023
Expressão regular polinomial usada em dados não controlados1333, 730, 400
Consulta criada com base em fontes controladas pelo usuário089, 564
Ler de um arquivo gravável mundial732
Injeção de expressão regular730, 400
Resolver entidade externa XML em dados controlados pelo usuário611, 776, 827
Solicitação forjada do lado do servidor918
Injeção de modelo do lado do servidor1336, 094
Linha de comando não controlada078, 088
Dados não controlados usados na resolução de conteúdo441, 610
Dados não controlados usados na expressão de caminho022, 023, 036, 073
Verificação de nome de host não seguro297
Encaminhamento de URL de uma fonte remota552
Redirecionamento de URL da fonte remota601
Uso de um algoritmo criptográfico danificado ou arriscado327, 328
Uso de um algoritmo criptográfico com tamanho de chave insuficiente326
Uso de uma semente previsível em um gerador de números aleatórios seguro335, 337
Uso de cadeia de caracteres de formato controlada externamente134
Uso de PendingIntents implícitos927
Uso do algoritmo RSA sem OAEP780
Dados controlados pelo usuário em conversão numérica197, 681
Dados controlados pelo usuário usados na verificação de permissões807, 290
Usando um vetor de inicialização estático para criptografia329, 1204
Injeção de XPath643
Transformação XSLT com folha de estilo controlada pelo usuário074
Acessar métodos de objeto Java por meio da exposição JavaScript079
Instalação de APK do Android094
Fixação de certificado ausente do Android295
Cache de teclado sensível do Android524
Acesso ao arquivo Android WebSettings200
Configurações JavaScript do Android WebView079
As configurações do Android WebView permitem acesso a links de conteúdo200
Backup de aplicativo permitido312
Criar um comando com uma variável de ambiente injetada078, 088, 454
Armazenamento de texto não criptografado de informações confidenciais no sistema de arquivos Android312
Armazenamento de texto não criptografado de informações confidenciais usando a classe 'Properties'313
Armazenamento de texto não criptografado de informações confidenciais usando SharedPreferences no Android312
Armazenamento de texto não criptografado de informações confidenciais usando um banco de dados local no Android312
Comparação do tipo estreito com o tipo largo na condição de loop190, 197
Executar um comando com um caminho relativo078, 088
Exposição de informações confidenciais a notificações200
Exposição de informações confidenciais a exibições de texto da interface do usuário200
Credencial codificada na chamada de API798
Validação incorreta do índice de matriz fornecido pelo usuário129
Validação inadequada do tamanho fornecido pelo usuário usado para a construção de matrizes129
Autenticação básica não segura522, 319
Configuração SSL não segura do JavaMail297
Chaves geradas de forma insegura para autenticação local287
Inserção de informações confidenciais em arquivos de log532
Vazamento de informações confidenciais por meio de um ResultReceiver927
Vazamento de informações confidenciais por meio de uma intenção implícita927
Divulgação de informações locais em um diretório temporário200, 732
Injeção de log117
Loop com condição de saída inacessível835
Falta permissão de leitura ou gravação em um provedor de conteúdo926
Vulnerabilidade de travessia de caminho parcial023
Consulta criada por concatenação com uma cadeia de caracteres possivelmente não confiável089, 564
Condição de corrida na autenticação de soquete421
Condição de corrida de tempo de uso de verificação de tempo de verificação367
Violação de limite de confiança501
Dados não controlados em expressão aritmética190, 191
Bloqueio não liberado764, 833
Confiança de certificado não segura273
Busca de recursos não seguros no Android WebView749, 079
Uso de um algoritmo criptográfico potencialmente danificado ou arriscado327, 328
Uso de uma função potencialmente perigosa676
Bypass controlado pelo usuário de método confidencial807, 290
Dados controlados pelo usuário em expressão aritmética190, 191