Skip to main content

C- und C++-Abfragen für die CodeQL-Analyse

Erkunden Sie die Abfragen, die CodeQL zum Analysieren von Code verwendet, der in C oder C++ geschrieben wurde, wenn Sie die Abfragesammlung default oder security-extended auswählen.

Wer kann dieses Feature verwenden?

CodeQL ist für die folgenden Repositorytypen verfügbar:

CodeQL enthält viele Abfragen zum Analysieren von C- und C++-Code. Alle Abfragen in der default Abfragesammlung werden standardmäßig ausgeführt. Wenn Sie sich für die Verwendung der security-extended Abfragesammlung entscheiden, werden zusätzliche Abfragen ausgeführt. Weitere Informationen finden Sie unter CodeQL-Abfragesammlungen.

Integrierte Abfragen für die C- und C++-Analyse

In dieser Tabelle sind die Abfragen aufgeführt, die mit der neuesten Version der Aktion CodeQL und CodeQL CLI verfügbar sind. Weitere Informationen finden Sie unter CodeQL-Änderungsprotokollen auf der Dokumentationsseite zu CodeQL.

Hinweis

Das erste Release von GitHub Enterprise Server 3.18 enthielt CodeQL-Aktion und CodeQL CLI 2.21.4, die möglicherweise nicht alle diese Abfragen enthalten. Ihr Website-Administrator kann Ihre CodeQL-Version auf eine neuere Version aktualisieren. Weitere Informationen finden Sie unter Konfigurieren der Codeüberprüfung für Ihre Anwendung.

AbfragenameVerwandte CWEsStandardErweitertCopilot Autofix
Fehlerhafte Überprüfung auf Überlauf bei ganzzahliger Addition190, 192
Schlecht eingeschränkter Schreibzugriff120, 787, 805
Anruf bei memset könnte gelöscht werden014
Aufrufen von Alloca in einem Loop770
Aufrufen der Funktion mit weniger Argumenten als deklarierten Parametern234, 685
Übertragung zwischen HRESULT und einem boole’schen Typ253
Umwandlung von char* zu wchar_t*704
CGI-Skript anfällig für Cross-Site Scripting079
Speichern von Klartext vertraulicher Informationen in Datei260, 313
Übertragung von Klartext vertraulicher Informationen319, 359
Vergleich des schmalen Typs mit breitem Typ in Loop-Bedingung190, 197, 835
Gefährliche Verwendung von „cin“676
Offenlegung von Systemdaten an eine nicht autorisierte Kontrollsphäre497
Fehler bei der Verwendung von HTTPS-URLs319, 345
Datei mit O_CREAT Flag geöffnet, aber ohne Modus-Argument732
Falsche Rückgabewert-Überprüfung für eine „scanf“-ähnliche Funktion253
Iterator für abgelaufenen Container416, 664
Wahrscheinlich überlaufender Schreibvorgang120, 787, 805
Nicht übereinstimmende Zuordnung von new/free oder malloc/delete401
Multiplikationsergebnis in größeren Typ konvertiert190, 192, 197, 681
Kein Platz für Nullterminator131, 120, 122
Zeiger-Überlaufprüfung758
Potenzielles doppeltes Freigeben415
Potenzielle Nutzung nach Freiheit416
Potenziell überlaufender Aufruf von snprintf190, 253
Potenziell unsicherer Anruf für strncat788, 676, 119, 251
Redundante Nullüberprüfung aufgrund vorheriger Dereferenzierung476
Rückgabe von auf dem Stapel zugewiesenem Speicher825
Setzen einer DACL auf NULL in einem SECURITY_DESCRIPTOR732
Überlaufprüfung für vorzeichenbehaftete Zahlen128, 190
Statischer Zugriff auf ein Array kann zu einem Überlauf führen119, 131
Verdächtiges Hinzufügen mit sizeof468
Time-of-Check Time-of-Use Dateisystem Racebedingung367
Nicht genügend Argumente für Formatierungsfunktion234, 685
Nicht kontrollierte Daten im arithmetischen Ausdruck190, 191
Nicht kontrollierte Daten in SQL-Abfrage089
Unkontrollierte Daten, die im OS-Befehl verwendet werden078, 088
Unkontrollierter Formatstring134
Unsichere Verwendung von 'this' im Konstruktor670
Nicht signierter Unterschiedsausdruck im Vergleich zu Null191
Upcast-Array für die Zeigerarithmetik119, 843
Verwendung eines fehlerhaften oder riskanten Kryptografiealgorithmus327
Verwendung eines Kryptografiealgorithmus mit unzureichender Schlüsselgröße326
Verwendung einer Version von OpenSSL mit Heartbleed327, 788
Verwendung einer gefährlichen Funktion242, 676
Verwendung einer abgelaufenen Stack-Adresse825
Verwendung von Zeichenketten nach Ablauf der Lebensdauer416, 664
Verwendung eines eindeutigen Zeigers nach Ablauf der Lebensdauer416, 664
Falscher Typ von Argumenten zur Formatierungsfunktion686
Erweiterung der externen XML-Entität611
Vor der Bereichsüberprüfung verwendetes Array-Offset120, 125
Überbrückung der Authentifizierung durch Spoofing290
boost::asio Fehlkonfiguration von TLS-Einstellungen326
Verwendung eines veralteten, fest codierten Protokolls in boost::asio327
Aufruf der Speicherzugriffsfunktion kann zu einem Überlauf des Puffers führen119, 121, 122, 126
Zertifikat nicht überprüft295
Zusammenführung von Zertifikatsergebnissen295
Speicherung von Klartext vertraulicher Informationen in einer SQLite-Datenbank313
Speichern von Klartext vertraulicher Informationen in der Pufferung312
Komma vor irreführendem Einzug1078, 670
Datei ohne Einschränkung von Berechtigungen erstellt732
Falsche Verwendung des Operators „not“480
Falsche Behandlung des Zuteilungsfehlers570, 252, 755
Ungültige Zeiger-Dereferenzierung119, 125, 193, 787
Fehlende Rückgabewert-Überprüfung für eine „scanf“-ähnliche Funktion252, 253
Nicht konstante Formatzeichenkette134
Nicht genügend Speicherzuordnung für Arrays vom Typ Zeiger131, 122
Nicht genügend Speicher für Zeigertyp zugewiesen131, 122
NULL-Anwendungsname mit einem nicht zitierten Pfad im Aufruf von CreateProcess428
Überlaufender Schreibzugriff119, 131
Möglicherweise falsche Puffergröße in Zeichenkettenkopie676, 119, 251
Potenzielle Gefährdung von sensiblen Systemdaten gegenüber einer nicht autorisierten Kontrollsphäre497
Potenziell überlaufender Schreibzugriff120, 787, 805
Potenzieller Überlauf bei Schreibvorgang durch Umwandlung von Gleitkommazahl in Zeichenkette120, 787, 805
Potenziell nicht initialisierte lokale Variable665, 457
Potenziell unsichere Verwendung von strcat676, 120, 251
Verdächtige Verwendung von „sizeof“467
Verdächtige Zeigerskalierung468
Verdächtige Zeigerskalierung auf void468
Unklarheit bezüglich des Typs843
Ungebundene Schreibvorgänge120, 787, 805
Unkontrollierte Zuteilungsgröße190, 789
Nicht überprüfte Daten, die in einem Pfadausdruck verwendet werden022, 023, 036, 073
Unkontrollierter Prozessvorgang114
Nicht beendeter variadischer Aufruf121
Nicht vertrauenswürdige Eingabe für eine Bedingung807
Verwendung potenziell gefährlicher Funktionen676