CodeQL에는 C 및 C++ 코드를 분석하기 위한 여러 쿼리가 포함되어 있습니다. default 쿼리 도구 모음의 모든 쿼리는 기본적으로 실행됩니다. security-extended 쿼리 도구 모음을 사용하도록 선택하면 추가 쿼리가 실행됩니다. 자세한 내용은 CodeQL 쿼리 도구 모음을(를) 참조하세요.
C 및 C++ 분석을 위한 기본 제공 쿼리
이 표에는 CodeQL 작업과 CodeQL CLI의 최신 릴리스에서 사용할 수 있는 쿼리가 나열되어 있습니다. 자세한 내용은 CodeQL 설명서 사이트에서 CodeQL 변경 로그를 참조하세요.
참고
GitHub Enterprise Server 3.21의 초기 릴리스에는 CodeQL 작업과 CodeQL CLI 2.24.3이 포함되었는데, 여기에는 이러한 쿼리가 모두 포함되지 않을 수도 있습니다. 사이트 관리자가 CodeQL 버전을 최신 릴리스로 업데이트할 수 있습니다. 자세한 내용은 어플라이언스에 대한 코드 검사 구성을(를) 참조하세요.
| 쿼리 이름 | 관련 CWE 목록 | 기본값 | 확장 | 코파일럿 자동 수정 |
|---|---|---|---|---|
| 정수 추가 오버플로에 대한 잘못된 검사 | 190, 192 | |||
| 잘못 바인딩된 쓰기 | 120, 787, 805 | |||
| [ |
`memset` 호출이 삭제될 수 있음](https://codeql.github.com/codeql-query-help/cpp/cpp-memset-may-be-deleted/) | 014 | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> |
| 루프에서 alloca 호출 | 770 | | | | | 선언된 매개 변수보다 인수가 적은 함수 호출 | 234, 685 | | | | | HRESULT와 불리언 형식 간의 캐스팅 | 253 | | | | | char에서 wchar_t로 캐스팅 | 704 | | | | | 교차 사이트 스크립팅에 취약한 CGI 스크립트 | 079 | | | | | 파일에 중요한 정보의 일반 텍스트 저장 | 260, 313 | | | | | 중요한 정보의 일반 텍스트 전송 | 319, 359 | | | | | 루프 조건에서 좁은 형식과 넓은 형식 비교 | 190, 197, 835 | | | | | 'cin'의 위험한 사용 | 676 | | | | | 승인되지 않은 제어 영역에 시스템 데이터 노출 | 497 | | | | | HTTPS URL 사용 실패 | 319, 345 | | | | | O_CREAT 플래그가 있지만 모드 인수 없이 열린 파일 | 732 | | | | | 'scanf'와 유사한 함수에 대한 잘못된 반환 값 검사 | 253 | | | | | 만료된 컨테이너에 대한 이터레이터 | 416, 664 | | | | | 쓰기 오버런 가능성 있음 | 120, 787, 805 | | | | | new/free 또는 malloc/delete 일치하지 않음 | 401 | | | | | 곱하기 결과가 큰 형식으로 변환됨 | 190, 192, 197, 681 | | | | | 0 종결자를 위한 공간 없음 | 131, 120, 122 | | | | | 포인터 오버플로 검사 | 758 | | | | | 잠재적 이중 해제 | 415 | | | | | 해제 후 잠재적 사용 가능성 | 416 | | | | | snprintf 호출 오버플로 발생 가능성 있음 | 190, 253 | | | | | 잠재적으로 안전하지 않은 strncat 호출 | 788, 676, 119, 251 | | | | | 이전 역참조로 인한 중복 null 검사 | 476 | | | | | 스택 할당 메모리 반환 | 825 | | | | | SECURITY_DESCRIPTOR에서 DACL을 NULL로 설정 | 732 | | | | | 서명된 오버플로 검사 | 128, 190 | | | | | 정적 배열 액세스로 인해 오버플로 발생 가능 | 119, 131 | | | | | sizeof를 사용한 의심스러운 추가 | 468 | | | | | 타임 오브 체크 타임 오브 유즈 파일 시스템 경합 조건 | 367 | | | | | 서식 함수에 인수가 너무 적음 | 234, 685 | | | | | 산술 식의 제어되지 않은 데이터 | 190, 191 | | | | | SQL 쿼리의 제어되지 않은 데이터 | 089 | | | | | OS 명령에 제어되지 않은 데이터 사용됨 | 078, 088 | | | | | 제어되지 않은 형식 문자열 | 134 | | | | | 생성자에서 'this'의 안전하지 않은 사용 | 670 | | | | | 0과 비교한 부호 없는 차이 식 | 191 | | | | | 포인터 산술 연산에 업캐스트 배열 사용됨 | 119, 843 | | | | | 손상되었거나 위험한 암호화 알고리즘 사용 | 327 | | | | | 키 크기가 부족한 암호화 알고리즘 사용 | 326 | | | | | Heartbleed와 함께 OpenSSL 버전 사용 | 327, 788 | | | | | 위험한 함수 사용 | 242, 676 | | | | | 만료된 스택 주소 사용 | 825 | | | | | 수명 종료 후 문자열 사용 | 416, 664 | | | | | 수명이 종료된 후 고유 포인터 사용 | 416, 664 | | | | | 서식 함수에 잘못된 형식의 인수 | 686 | | | | | XML 외부 엔터티 확장 | 611 | | | | | 범위 확인 전에 사용되는 배열 오프셋 | 120, 125 | | | | | 스푸핑을 통한 인증 우회 | 290 | | | | | boost::asio TLS 설정 잘못된 구성 | 326 | | | | | boost::asio에서 사용되지 않는 하드 코딩된 프로토콜 사용 | 327 | | | | | 메모리 액세스 함수에 대한 호출은 버퍼를 오버플로할 수 있습니다. | 119, 121, 122, 126 | | | | | 인증서 검사 안 됨 | 295 | | | | | 인증서 결과 병합 | 295 | | | | | SQLite 데이터베이스에 중요한 정보의 일반 텍스트 저장 | 313 | | | | | 버퍼에 중요한 정보의 일반 텍스트 저장 | 312 | | | | | 오해의 소지가 있는 들여쓰기 앞의 쉼표 | 1078, 670 | | | | | 권한 제한 없이 생성된 파일 | 732 | | | | | 잘못된 'not' 연산자 사용 | 480 | | | | | 잘못된 할당 오류 처리 | 570, 252, 755 | | | | | 잘못된 포인터 역참조 | 119, 125, 193, 787 | | | | | 'scanf'와 유사한 함수에 대한 반환 값 검사 누락 | 252, 253 | | | | | 비상수 형식 문자열 | 134 | | | | | 포인터 형식의 배열에 할당된 메모리 부족 | 131, 122 | | | | | 포인터 형식에 할당된 메모리 부족 | 131, 122 | | | | | CreateProcess 호출 시 따옴표가 없는 경로가 있는 NULL 응용 프로그램 이름 | 428 | | | | | 초과 작동 쓰기 | 119, 131 | | | | | 문자열 복사에서 버퍼 크기가 잘못되었을 수 있음 | 676, 119, 251 | | | | | 승인되지 않은 제어 영역에 중요한 시스템 데이터 노출 가능성 있음 | 497 | | | | | 쓰기 초과 발생 가능성 | 120, 787, 805 | | | | | 부동에서 문자열로 변환 시 쓰기 오버런 발생 가능성 있음 | 120, 787, 805 | | | | | 잠재적으로 초기화되지 않은 지역 변수 | 665, 457 | | | | | 잠재적으로 안전하지 않은 strcat 사용 | 676, 120, 251 | | | | | 의심스러운 'sizeof' 사용 | 467 | | | | | 의심스러운 포인터 크기 조정 | 468 | | | | | void로 의심스러운 포인터 크기 조정 | 468 | | | | | 형식 혼동 | 843 | | | | | 제한 없는 쓰기 | 120, 787, 805 | | | | | 제어되지 않은 할당 크기 | 190, 789 | | | | | 경로 식에 제어되지 않은 데이터 사용됨 | 022, 023, 036, 073 | | | | | 제어되지 않은 처리 작업 | 114 | | | | | 종결되지 않은 가변 인자 호출 | 121 | | | | | 조건에 대한 신뢰할 수 없는 입력 | 807 | | | | | 잠재적으로 위험한 함수 사용 | 676 | | | |