CodeQL 2.24.1, Maven private registry 지원을 개선하고 쿼리 정확성을 향상시킵니다
Source: GitHub Changelog
CodeQL은 GitHub 코드 스캔 뒤에 있는 정적 분석 엔진으로, 코드에서 보안 문제를 찾아내고 해결합니다. 최근에 CodeQL 2.24.1(changelog)을 출시했으며, Maven 사설 패키지 레지스트리 지원을 개선하고 최신 Kotlin 버전을 지원하며, 코드 스캔 결과의 정확성을 높이는 다양한 향상을 제공했습니다.
Language and framework support
Java/Kotlin
- 이제 2.3.0까지의 Kotlin 버전을 분석에 사용할 수 있습니다.
- Struts 프레임워크 라이브러리에서 Struts 7.x 패키지 이름을 지원하도록 추가했습니다.
- 조직에 대한 기본 설정(Default Setup)에서 Maven 호환 사설 패키지 레지스트리를 구성하면, CodeQL이 Maven 플러그인 레포지토리에도 이를 사용하도록 설정하여 사설 레지스트리에서 Maven 플러그인을 가져올 수 있게 됩니다.
- Note: 이전에 공지한 바와 같이 Kotlin 1.6.x 및 1.7.x 시리즈에 대한 지원이 중단되었습니다.(announcement)
C/C++
- C23 및 C++26
#embed전처리 지시자를 지원하도록 추가했습니다.
C#
- C# 14: null‑conditional 할당을 지원하도록 추가했습니다.
Python
- 이제 Python 모델‑as‑data 언어에서
ListElement경로를 통해 리스트 요소를 참조할 수 있습니다. agents와openai모듈에 대한 taint‑flow 및 타입 모델을 추가했으며,websockets패키지에 대한 원격 흐름 소스를 모델링했습니다.
Query changes
C/C++
GuardCondition라이브러리의 버그를 수정했습니다. 이 버그로 인해 이진 논리 연산자가 가드 조건으로 인식되지 않을 때가 있었으며, 이제GuardCondition을 사용하는 쿼리에서 결과가 개선될 수 있습니다.- 버퍼 크기 측정 정확성을 향상시켜 다음 쿼리에서 false positive를 감소시켰습니다:
cpp/static-buffer-overflowcpp/overflow-buffercpp/badly-bounded-writecpp/overrunning-writecpp/overrunning-write-with-floatcpp/very-likely-overrunning-write
Java
java/unreleased-lock쿼리의 정확성을 개선했습니다.
Python
- LLM을 사용하는 코드에서 잠재적인 프롬프트 인젝션 취약점을 감지하는 실험적 쿼리
py/prompt-injection을 추가했습니다.
GitHub Actions
- 길이가 약 300자 이상인
${{ ... }}표현식을 분석할 때 발생하던 충돌을 수정했습니다.
전체 변경 사항 목록은 버전 2.24.1 전체 changelog을 참고하십시오. 모든 새로운 CodeQL 버전은 github.com에서 GitHub 코드 스캔을 사용하는 사용자에게 자동으로 배포됩니다. CodeQL 2.24.1의 새로운 기능은 향후 GitHub Enterprise Server(GHES) 릴리스에도 포함될 예정입니다. 오래된 GHES 버전을 사용 중이라면 CodeQL 버전을 수동으로 업그레이드할 수 있습니다.