GitHub Actions 보안 탐지와 언어 지원 강화
CodeQL 2.26.4는 Go 1.27 지원을 추가하고 Rust, C#, Java/Kotlin, GitHub Actions의 탐지 정확도를 높였습니다.
교안에 영향
GitHub Actions 관련 탐지 기준이 달라져 예전 안내 글의 보호 조건이나 alerts 설명이 일부 맞지 않을 수 있습니다.
요약
- Go 1.27 지원이 추가되었습니다. - Rust 데이터 흐름 쿼리의 경고 위치가 실제 source와 sink를 기준으로 더 정확해졌습니다. - Java/Kotlin, C#, GitHub Actions에서 여러 쿼리와 모델이 개선되어 오탐이 줄거나 탐지가 늘었습니다. - JavaScript/TypeScript와 Python에 대한 taint 흐름 지원이 확장되었습니다.
바뀐 것
새 기능
- Go 1.27을 지원합니다.
개선
- Rust 데이터 흐름 쿼리의 경고 위치를 실제 source와 sink 노드 기준으로 더 정확하게 조정했습니다.
- Java/Kotlin에 Spring R2DBC DatabaseClient와 R2DBC SPI용 SQL injection sink model을 추가했습니다.
- Java/Kotlin에서 인수가 CharSequence일 때 String.valueOf(Object) 호출을 통해 taint가 전파되도록 했습니다.
- JavaScript/TypeScript에서 d flag를 사용하는 regular expressions와 React Native Worklets의 'worklet' directive를 지원합니다.
- Python에서 list.extend와 list.insert를 통해 taint flow가 전파되도록 추가했습니다.
- cs/web/missing-token-validation 쿼리가 antiforgery middleware 사용 시 enabled ASP.NET Core RequireAntiforgeryToken attributes를 인식합니다.
- GitHub Actions에서 event payload의 actor fields를 읽는 검사가 실제로 해당 필드를 채우는 이벤트에 대해서만 protection으로 계산되도록 바뀌었습니다.
- actions/unpinned-tag 쿼리가 reusable workflows의 mutable references도 탐지합니다.
- models-as-data model로 EnvironmentCheck를 지정할 수 있게 되었습니다.
수정
- cs/virtual-call-in-constructor 쿼리가 nameof expressions 안의 virtual members 사용을 더 이상 호출로 보고하지 않습니다.
- cs/useless-cast-to-self와 cs/simplifiable-boolean-expression 쿼리의 build-mode: none 데이터베이스에서 false positive를 줄였습니다.