C·C++ 질의 추가와 Kotlin 2.4.20 지원
C/C++과 C#, Go, Rust, JavaScript/TypeScript의 분석 정확도를 높이고 Kotlin 2.4.20을 지원합니다.
교안에 영향
이제 Kotlin 2.4.20 지원과 함께 Fastify, Rust, C#, GitHub Actions 관련 질의 동작과 결과가 달라져 예전 안내의 탐지 결과 예시가 일부 맞지 않을 수 있습니다.
요약
- C/C++에서 새 taint flow models와 흐름 요약을 추가했습니다. - Go의 표준 라이브러리와 strings 패키지에 대한 data flow 모델을 확장했습니다. - Kotlin 2.4.20 지원을 추가하고 Kotlin K2 컴파일러의 Foo::class.java 추출 문제를 수정했습니다. - C#, GitHub Actions, Rust의 질의와 경로 해석, 경고 정확도를 개선했습니다.
바뀐 것
새 기능
- Kotlin 2.4.20을 지원합니다.
- cpp/ambiguous-assignment-of-comparison 질의를 추가했습니다.
- cs/linq/missed-firstordefault 질의를 추가했습니다.
개선
- C/C++에 boost::asio::ip::basic_resolver::resolve용 taint flow models, BloombergLP::bdlbb::Blob용 flow summaries, Protocol Buffers의 google::protobuf::MessageLite C++ API용 flow summaries를 추가했습니다.
- Go 1.27 표준 라이브러리 API인 bytes.CutLast, database/sql.ConvertAssign, database/sql/driver.RowsColumnScanner.ScanColumn, net/url.URL.Clone, net/url.Values.Clone, strings.CutLast와 새 encoding/json/jsontext 패키지의 data flow models를 추가하거나 개선했습니다.
- strings 패키지의 Clone, Cut, CutPrefix, CutSuffix, Fields, FieldsFunc, Join, Builder, Reader, Replacer API에 대한 data flow models를 확장했습니다.
- fastify().withTypeProvider()와 fastify().setValidatorCompiler(...) 같은 체인 메서드로 구성된 Fastify 서버를 인식해 경로 귀속 정확도를 높였습니다.
- Rust의 core::fmt::Write에 대한 data flow models를 추가해 형식화 출력 버퍼로의 오염 데이터 기록 탐지를 개선했습니다.
- 조직 수준 private registry 설정에서 Replaces base 옵션이 활성화된 private NuGet registry가 CodeQL의 의존성 다운로드 시 기본 NuGet 피드를 대체하도록 했습니다.
기타
- Rust extractor가 rust-analyzer 0.0.347을 사용하도록 업데이트되었습니다.
수정
- Kotlin K2 컴파일러 사용 시 Foo::class.java 인자 추출 문제를 수정해 java/android/implicit-pendingintents 같은 질의의 오탐을 줄였습니다.
- Rust에서 m::{self} 경로가 m이 trait일 때의 경로 해석을 수정했습니다.
- cs/linq/missed-* 질의가 in, out, ref 매개변수를 캡처하는 lambda 재작성 제안을 더 이상 하지 않도록 했습니다.
- cs/web/missing-token-validation 질의가 AddControllersWithViews 및 관련 메서드로 전역 MVC 필터에 등록한 AutoValidateAntiforgeryTokenAttribute를 인식하도록 개선했습니다.
- actions/unpinned-tag 질의가 구조적으로 유효한 .github/workflows/actions.lock 항목으로 고정된 작업을 더 이상 보고하지 않도록 했습니다.
- actions/unpinned-tag 질의가 같은 저장소의 현재 커밋을 가리키는 $/ 경로 참조를 더 이상 보고하지 않도록 했습니다.