Skip to main content

Requêtes Java et Kotlin pour l’analyse CodeQL

Explorez les requêtes que CodeQL utilise pour analyser le code écrit en Java ou Kotlin et ce lorsque vous sélectionnez la suite de requêtes default ou security-extended.

Qui peut utiliser cette fonctionnalité ?

Code scanning est disponible pour tous les dépôts publics sur GitHub.com. Code scanning est également disponible pour des dépôts privés appartenant à des organisations qui utilisent GitHub Enterprise Cloud et ont une licence pour GitHub Advanced Security. Pour plus d’informations, consultez « À propos de GitHub Advanced Security ».

CodeQL inclut de nombreuses requêtes pour analyser le code Java et Kotlin. Toutes les requêtes de la suite de requêtes default sont exécutées par défaut. Si vous choisissez d’utiliser la suite de requêtes security-extended, des requêtes supplémentaires sont exécutées. Pour plus d’informations, consultez « Suites de requêtes CodeQL ».

Remarque : L’analyse CodeQL pour Kotlin est en version bêta. Durant la version bêta, l’analyse de Kotlin est moins complète que l’analyse CodeQL des autres langages.

Requêtes intégrées pour l’analyse Java et Kotlin

Ce tableau répertorie les requêtes disponibles avec la dernière version de l’action CodeQL et CodeQL CLI. Pour plus d’informations, consultez les journaux des modifications CodeQL dans le site de documentation de CodeQL.

Remarque : la correction automatique de GitHub pour code scanning est en phase bêta. Les fonctionnalités et la documentation sont sujettes à modification. Au cours de cette phase, la fonctionnalité est limitée aux alertes JavaScript, TypeScript, Python et Java identifiées par CodeQL. Si vous avez un compte d’entreprise et que vous utilisez GitHub Advanced Security, votre entreprise a accès à la version bêta.

Nom de la requêteCWE connexesPar défautÉtenduCorrection automatique
TrustManager qui accepte tous les certificats295
Android WebView qui accepte tous les certificats295
Attribut de débogueur Android activé489
Injection de fragment Android470
Injection de fragment Android dans PreferenceActivity470
Redirection d’intention Android926, 940
Débogage Webview Android activé489
Accès arbitraire aux fichiers lors de l’extraction d’archives (« Zip Slip »)022
Création d’une ligne de commande avec concaténation de chaîne078, 088
Stockage de texte en clair des informations sensibles dans le cookie315
Scripting inter-site079
Dépendance à l’égard de JCenter/Bintray en tant que référentiel d’artefacts1104
Désérialisation des données contrôlées par l’utilisateur502
Détecter la vulnérabilité CVE-2019-16303 du générateur JHipster338
Validation de l’en-tête HTTP Netty désactivée93, 113
Protection Spring CSRF désactivée352
Injection de langage d’expression (JEXL)094
Injection de langage d’expression (MVEL)094
Injection de langage d’expression (Spring)094
Échec de l’utilisation de l’URL HTTPS ou SFTP dans le chargement/téléchargement d’artefacts Maven300, 319, 494, 829
Échec de l’utilisation des cookies sécurisés614
Injection de langage Groovy094
Fractionnement des réponses HTTP113
Conversion restrictive implicite dans l’affectation composée190, 192, 197, 681
Composant Android implicitement exporté926
Vérification incorrecte de l’intention par récepteur de diffusion925
Expression régulière inefficace1 333, 730, 400
Exposition des informations par le biais d’un rapport des appels de procédure209, 497
Validation non sécurisée des beans094
Authentification LDAP non sécurisée522, 319
Authentification locale non sécurisée287
Caractère aléatoire non sécurisé330, 338
Manipulation des autorisations d’URI d’intention266, 926
Recherche JNDI avec un nom contrôlé par l’utilisateur074
Requête LDAP créée à partir de sources contrôlées par l’utilisateur090
Vérification de signature JWT manquante347
Instruction du langage d’expression OGNL avec entrée contrôlée par l’utilisateur917
Plage d’expressions régulières trop permissive020
Vulnérabilité de parcours partielle à distance du chemin d’accès023
Expression régulière polynôme utilisée sur des données non contrôlées1 333, 730, 400
Requête générée à partir de sources contrôlées par l’utilisateur089, 564
Lecture à partir d’un fichier accessible en écriture dans le monde732
Injection d’expressions régulières730, 400
Résolution d’une entité externe XML dans les données contrôlées par l’utilisateur611, 776, 827
Falsification de requête côté serveur918
Injection de gabarit côté serveur1336, 094
Ligne de commande non contrôlée078, 088
Données non contrôlées utilisées dans la résolution de contenu441, 610
Données non contrôlées utilisées dans l’expression de chemin d’accès022, 023, 036, 073
Vérification du nom d’hôte non sécurisée297
Transfert d’URL à partir d’une source distante552
Redirection d’URL à partir d’une source distante601
Utilisation d’un algorithme de cryptage défectueux ou risqué327, 328
Utilisation d’un algorithme de cryptage avec une taille de clé insuffisante326
Utilisation d’une cote prévisible dans un générateur de nombres aléatoires sécurisés335, 337
Utilisation de la chaîne de format contrôlée en externe134
Utilisation de PendingIntents implicites927
Utilisation de l’algorithme RSA sans OAEP780
Données contrôlées par l’utilisateur dans une projection numérique197, 681
Données contrôlées par l’utilisateur utilisées dans la vérification des autorisations807, 290
Utilisation d’un vecteur d’initialisation statique pour le chiffrement329, 1 204
Injection XPath643
Transformation XSLT avec une feuille de style contrôlée par l’utilisateur074
Accéder aux méthodes d’objet Java par le biais d’une exposition JavaScript079
Installation d’Android APK094
Épinglage de certificat Android manquant295
Cache clavier sensible Android524
Accès aux fichiers WebSettings d’Android200
Paramètres JavaScript WebView d’Android079
Les paramètres Android WebView permettent d’accéder aux liens de contenu200
Sauvegarde d’application autorisée312
Génération d’une commande avec une variable d’environnement injectée078, 088, 454
Stockage de texte en clair des informations sensibles dans le système de fichiers Android312
Stockage de texte en clair des informations sensibles à l’aide de la classe « Propriétés »313
Stockage de texte en clair des informations sensibles à l’aide de SharedPreferences sur Android312
Stockage de texte en clair des informations sensibles à l’aide d’une base de données locale sur Android312
Comparaison du type étroit avec un type large en condition de loop190, 197
Exécution d’une commande avec un chemin d’accès relatif078, 088
Exposition des informations sensibles aux notifications200
Exposition des informations sensibles aux vues de texte de l’IU200
Identifiant codé en dur irréversible dans l’appel d’API798
Validation incorrecte de l’index de tableau fourni par l’utilisateur129
Validation incorrecte de la taille fournie par l’utilisateur utilisée pour la construction de tableaux129
Authentification de base non sécurisée522, 319
Configuration SSL JavaMail non sécurisée297
Clés générées de manière non sécurisée pour l’authentification locale287
Insertion d’informations sensibles dans des fichiers journaux532
Fuite d’informations sensibles par le biais d’un ResultReceiver927
Fuite d’informations sensibles par le biais d’une intention implicite927
Divulgation d’informations locales dans un annuaire temporaire200, 732
Injection de journaux d’activité117
Loop avec condition de sortie inaccessible835
Absence d’autorisation d’accès en écriture ou en lecture dans un fournisseur de contenu926
Vulnérabilité de parcours partielle du chemin d’accès023
Requête générée par concaténation avec une chaîne éventuellement non approuvée089, 564
Condition de concurrence dans l’authentification de socket421
Heure de vérification du temps d’utilisation de la condition de concurrence367
Violation de limite d’approbation501
Données non contrôlées dans une expression arithmétique190, 191
Verrou non déverrouillé764, 833
Approbation de certificat non sécurisée273
Récupération de ressources non sécurisées dans Android WebView749, 079
Utilisation d’un algorithme de cryptage potentiellement défectueux ou risqué327, 328
Utilisation d’une fonction potentiellement dangereuse676
Contournement contrôlé par l’utilisateur de la méthode sensible807, 290
Données contrôlées par l’utilisateur dans une expression arithmétique190, 191