Skip to main content

Requêtes JavaScript et TypeScript pour l’analyse CodeQL

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

Qui peut utiliser cette fonctionnalité ?

CodeQL est disponible pour les types de référentiels suivants :

CodeQL inclut de nombreuses requêtes pour analyser le code JavaScript et TypeScript. 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 ».

Requêtes intégrées pour l’analyse JavaScript et TypeScript

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.

Note

La version initiale de GitHub Enterprise Server 3.11 incluait l’action CodeQL et CodeQL CLI 2.14.6, qui peuvent ne pas inclure toutes ces requêtes. Votre administrateur de site peut mettre à jour votre version CodeQL vers une version plus récente. Pour plus d’informations, consultez « Configuration de l’analyse de code pour votre appliance ».

Nom de la requêteCWE connexesPar défautÉtenduCopilot Autofix
Accès arbitraire aux fichiers lors de l’extraction d’archives (« Zip Slip »)022
Mauvais filtrage HTML regexp020, 080, 116, 184, 185, 186
Chemin d’intergiciel respectant la casse178
Effacer le stockage de texte des informations sensibles312, 315, 359
Effacer la transmission de texte d’un cookie sensible614, 311, 312, 319
Effacer la journalisation de texte des informations sensibles312, 359, 532
Scripting inter-site côté client079, 116
Redirection de l’URL côté client079, 116, 601
Injection de code094, 095, 079, 116
Mauvaise configuration CORS pour le transfert d’identifiants346, 639, 942
Création de nombres aléatoires biaisés à partir d’une source sécurisée par chiffrement327
Communication inter-fenêtres avec une origine cible illimitée201, 359
Requête de base de données créée à partir de sources contrôlées par l’utilisateur089, 090, 943
Téléchargement de dépendances à l’aide d’un canal de communication non chiffré300, 319, 494, 829
Désérialisation des données contrôlées par l’utilisateur502
Désactivation de la validation du certificat295, 297
Désactivation d’Electron webSecurity79
Désactivation de SCE116
Texte DOM réinterprété en tant que HTML079, 116
Compilation double1176
Escaping ou Unescaping double116, 020
Téléchargement d’un fichier sensible par le biais d’une connexion non sécurisée829
Activation d’Electron allowRunningInsecureContent494
Texte d’exception réinterprété en HTML079, 116
Exposition des fichiers privés200, 219, 548
Injection d’expressions dans Actions094
Identifiants codés en dur259, 321, 798
Empoisonnement de l’en-tête de l’hôte dans la génération d’e-mail640
Assainissement de code incorrect094, 079, 116
Inclusion de fonctionnalités à partir d’une source non approuvée830
Assainissement d’attribut HTML incomplet079, 116, 020
Assainissement à caractères multiples incomplet020, 080, 116
Expression régulière incomplète pour les noms d'hôte020
Escaping ou encodage de chaîne incomplet020, 080, 116
Vérification du schéma d’URL incomplète020, 184
Assainissement de sous-chaîne d’URL incomplet020
Vérification du suffixe incorrecte020
Expression régulière inefficace1 333, 730, 400
Exposition des informations par le biais d’un rapport des appels de procédure209, 497
Configuration non sécurisée de l'intergiciel de sécurité Helmet693, 1021
Caractère aléatoire non sécurisé338
Liste verte d’URL non sécurisée183, 625
Vérification de clé secrète ou publique manquante JWT347
Injection liée à la loop834, 730
Intergiciel CSRF manquant352
Limitation de débit manquante770, 307, 400
Plage d’expressions régulières trop permissive020
Expression régulière polynôme utilisée sur des données non contrôlées1 333, 730, 400
Affectation de pollution par prototype078, 079, 094, 400, 471, 915
Fonction de pollution par prototype078, 079, 094, 400, 471, 915
Fusion des appels de pollution par prototype078, 079, 094, 400, 471, 915
Scripting inter-site réfléchi079, 116
Injection d’expressions régulières730, 400
Remplacement d’une sous-chaîne par elle-même116
Épuisement des ressources400, 770
Épuisement des ressources du parcours d’objets profonds400
Injection de commandes de deuxième ordre078, 088
Données sensibles lues à partir de la requête GET598
Cookie de serveur sensible exposé au client1004
Blocage du serveur248, 730
Falsification de requête côté serveur918
Redirection de l’URL côté serveur601
Commande Shell générée à partir de valeurs d’environnement078, 088
Stockage d’informations sensibles dans l’artefact de build312, 315, 359
Stockage d’informations sensibles dans l’artefact GitHub Actions312, 315, 359
Scripting inter-site stocké079, 116
Injection d’objets de gabarit073, 094
Confusion de type par le biais de la falsification de paramètres8:43
Ligne de commande non contrôlée078, 088
Données non contrôlées utilisées dans l'expression de chemin d'accès022, 023, 036, 073, 099
Utilisation inutile du processus cat078
Accès à la méthode dynamique non sécurisée094
Extension non sécurisée de la balise HTML auto-fermante079, 116
Code HTML non sécurisé construit à partir d’une entrée de bibliothèque079, 116
Plug-in jQuery non sécurisé079, 116
Commande shell non sécurisée construite à partir d’une entrée de bibliothèque078, 088
Domaine non fiable utilisé dans un script ou un autre contenu830
Appel de méthode dynamique non validé754
Utilisation d’un algorithme de cryptage rompu ou faible327, 328
Utilisation d’une clé de chiffrement faible326
Utilisation de la chaîne de format contrôlée en externe134
Utilisation du hachage de mot de passe avec un effort de calcul insuffisant916
Escape de caractère d’expression régulière inutile020
Extension d’entité externe XML611, 827
Extension d’entité interne XML776, 400
Injection XPath643
Falsification de requête côté client918
Mot de passe vide dans le fichier de configuration258, 862
Échec de l’abandon de la session384
Données de fichier dans une requête réseau sortante200
Données codées en dur interprétées en tant que code506
Ligne de commande non contrôlée indirecte078, 088
Fichier temporaire non sécurisé377, 378
Injection de journaux d’activité117
Vérification d’origine manquante dans le gestionnaire postMessage020, 940
Ancre d'expression régulière manquante020
Données réseau écrites dans un fichier912, 434
Mot de passe dans le fichier de configuration256, 260, 313, 522
Condition de concurrence potentielle du système de fichiers367
Injection de propriétés à distance250, 400
Cookie sensible sans restrictions SameSite1275
Code unsafe construit à partir d’une entrée de bibliothèque094, 079, 116
Contournement de la vérification de sécurité contrôlé par l’utilisateur807, 290