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?

Code scanning ist für alle öffentlichen Repositorys auf GitHub.com verfügbar. Zur Verwendung von code scanning in einem privaten organisationseigenen Repository musst du über eine Lizenz für GitHub Advanced Security verfügen. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security.

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 findest du 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: Die automatische Korrektur von GitHub für code scanning befindet sich in der Betaversion. Funktionalität und Dokumentation können Änderungen unterliegen. In dieser Phase ist das Feature auf die von CodeQL erkannten JavaScript-, TypeScript-, Python und Java-Warnungen beschränkt. Wenn Sie ein Unternehmenskonto haben und GitHub Advanced Security verwenden, hat Ihr Unternehmen Zugang zur Beta-Version.

AbfragenameVerwandte CWEsStandardErweitert
Ungültige Überprüfung auf Erweiterung der ganzzahligen Addition190, 192
Schlecht gebundener Schreibzugriff120, 787, 805
memset-Anruf könnte gelöscht werden14
Aufrufen von Alloca in einem Loop770
Aufrufen der Funktion mit weniger Argumenten als deklarierten Parametern234, 685
Übertragung zwischen HRESULT und einem boole’schen Typ253
Übertragung von Zeichen* in 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
Gefährdung von Systemdaten gegenüber einer nicht autorisierten 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
Wahrscheinlich überlaufener Schreibzugriff120, 787, 805
Nicht übereinstimmende neu/frei oder malloc/delete401
Multiplikationsergebnis in größeren Typ konvertiert190, 192, 197, 681
Kein Raum für null-Terminator131, 120, 122
Zeiger-Überlaufprüfung758
Potenzielle Doppelfreiheit415
Potenzielle Nutzung nach Freiheit416
Potenziell erweiterter Aufruf an snprintf190, 253
Redundante Nullüberprüfung aufgrund vorheriger Dereferenzierung476
Rückgabe von auf dem Stapel zugewiesenem Speicher825
Festlegen einer DACL auf NULL in einem SECURITY_DESCRIPTOR732
Signierte Erweiterungsprüfung128, 190
Statischer Array-Zugriff kann zu Erweiterung 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
Unkontrollierte Formatzeichenkette134
Unsichere Verwendung davon im Konstruktor670
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 Stapeladresse825
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
boost::asio Verwendung eines veralteten hartcodierten Protokolls327
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 Speicherzuordnung für Typ Zeiger131, 122
NULL-Anwendungsname mit einem nicht zitierten Pfad im Aufruf von CreateProcess428
Erweiterung in unkontrollierter Zuteilungsgröße190, 789
Ü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 erweiterter Schreibzugriff120, 787, 805
Potenziell erweiterter Schreibzugriff mit unverankerter Zeichenkettenkonvertierung120, 787, 805
Potenziell deinitialisierte lokale Variable665, 457
Potenziell unsicherer Anruf für strncat788, 676, 119, 251
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
Nicht kontrollierte Daten, die im Pfadausdruck verwendet werden022, 023, 036, 073
Unkontrollierter Prozessvorgang114
Nicht signierter Unterschiedsausdruck im Vergleich zu Null191
Nicht beendeter variadischer Aufruf121
Nicht vertrauenswürdige Eingabe für eine Bedingung807
Verwendung potenziell gefährlicher Funktionen676