Skip to main content

C and C++ queries for CodeQL analysis

Explore the queries that CodeQL uses to analyze code written in C or C++ when you select the default or the security-extended query suite.

Qui peut utiliser cette fonctionnalité ?

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

CodeQL includes many queries for analyzing C and C++ code. 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 ».

Built-in queries for C and C++ analysis

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.

Nom de la requêteCWE connexesPar défautÉtenduCorrectif automatique Copilot
Mauvaise vérification pour le dépassement de capacité d’ajout d’entiers190, 192
Écriture mal limitée120, 787, 805
L’appel à memset peut avoir été supprimé014
L’appel à l’allocation dans un loop770
Appel à la fonction avec moins d’arguments que les paramètres déclarés234, 685
Projection entre HRESULT et un type booléen253
Effectuer une projection de char* en wchar_t*704
Script CGI vulnérable au scripting inter-site079
Stockage de texte en clair des informations sensibles dans le fichier260, 313
Transmission de texte en clair des informations sensibles319, 359
Comparaison du type étroit avec un type large en condition de loop190, 197, 835
Utilisation dangereuse de « cin »676
Exposition des données système à une sphère de contrôle non autorisée497
Échec de l’utilisation des URL HTTPS319, 345
Fichier ouvert avec l’indicateur O_CREAT, mais sans argument de mode732
Vérification de valeur renvoyée incorrecte pour une fonction comme « scanf »253
Itérateur pour le conteneur expiré416, 664
Dépassement probable de l’écriture120, 787, 805
Incompatibilité de nouveau/libre ou malloc/supprimer401
Résultat de multiplication converti en type plus grand190, 192, 197, 681
Aucun espace pour le terminateur zéro131, 120, 122
Vérification de dépassement de capacité du pointeur758
Double libre potentiel415
Utilisation potentielle après la libération416
Appel potentiellement en dépassement de capacité à snprintf190, 253
Appel potentiellement non sécurisé à strncat788, 676, 119, 251
Vérification de null redondant en raison du déréférencement précédente476
Retour de la mémoire attribuée à la pile825
Définition d’un DACL sur NULL dans un SECURITY_DESCRIPTOR732
Vérification du dépassement de capacité signé128, 190
L’accès au tableau statique peut entraîner un dépassement de capacité119, 131
Ajout suspect avec sizeof468
Condition de concurrence du système de fichiers Time-of-check time-of-use367
Trop peu d'arguments pour la fonction de mise en forme234, 685
Données non contrôlées dans une expression arithmétique190, 191
Données non contrôlées dans la requête SQL089
Données non contrôlées utilisées dans la commande du système d’exploitation078, 088
Chaîne de format non contrôlée134
Utilisation non sécurisée de ce composant dans le constructeur670
Expression de différence non signée par rapport à zéro191
Tableau hyperonyme utilisé dans l’arithmétique du pointeur119, 843
Utilisation d’un algorithme de cryptage défectueux ou risqué327
Utilisation d’un algorithme de cryptage avec une taille de clé insuffisante326
Utilisation d’une version d’OpenSSL avec Heartbleed327, 788
Utilisation d’une fonction dangereuse242, 676
Utilisation d’une adresse de pile expirée825
Utilisation de la chaîne après la fin de la durée de vie416, 664
Utilisation d’un pointeur unique après la fin de la durée de vie416, 664
Type incorrect d’arguments pour la fonction de mise en forme686
Extension d’entité externe XML611
Décalage du tableau utilisé avant le contrôle de plage120, 125
Contournement de l’authentification par usurpation d’identité290
boost::asio Mauvaise configuration des paramètres TLS326
boost::asio use of deprecated hardcoded protocol327
L’appel à la fonction d’accès à la mémoire peut entraîner un dépassement de la mémoire tampon119, 121, 122, 126
Certificat non vérifié295
Conflation des résultats du certificat295
Stockage de texte en clair des informations sensibles dans une base de données SQLite313
Stockage de texte en clair des informations sensibles dans la mémoire tampon312
Virgule avant mise en retrait trompeuse1078, 670
Fichier créé sans restriction d’autorisations732
Utilisation incorrecte de l’opérateur « not »480
Gestion des erreurs de répartition incorrecte570, 252, 755
Déréférencement de pointeur non valide119, 125, 193, 787
Vérification de valeur renvoyée manquante pour une fonction comme « scanf »252, 253
Chaîne de format non constante134
Mémoire insuffisante attribuée pour le tableau de type pointeur131, 122
Mémoire insuffisante attribuée pour le type de pointeur131, 122
Nom de l’application NULL avec un chemin d’accès non cité en appel à CreateProcess428
Surexécution d’écriture119, 131
Taille de la mémoire tampon éventuellement incorrecte dans la copie de chaînes676, 119, 251
Exposition potentielle des données système sensibles à une sphère de contrôle non autorisée497
Écriture potentiellement excessive120, 787, 805
Écriture potentiellement excessive avec float en conversion de chaîne120, 787, 805
Variable locale potentiellement non initialisée665, 457
Utilisation potentiellement non sécurisée de strcat676, 120, 251
Utilisation suspecte de « sizeof »467
Mise à l’échelle suspecte du pointeur468
Mise à l’échelle suspecte du pointeur vers void468
Confusion de type8:43
Écriture non liée120, 787, 805
Taille d’allocation non contrôlée190, 789
Données non contrôlées utilisées dans l’expression de chemin d’accès022, 023, 036, 073
Opération de processus non contrôlée114
Appel variadique interminé121
Entrée non approuvée pour une condition807
Utilisation d’une fonction potentiellement dangereuse676