검색
← 릴리스 노트

C++, Go, Rust, JavaScript 분석 개선

깃허브 · 2.27.2 · 기능추가 · 2026.10.09

C++, Go, Rust, JavaScript 전반의 분석과 일부 쿼리 동작을 개선하고, macOS 27 지원 제한과 CLI 오류 처리를 조정했습니다.

교안에 영향

Go CFG에 의존하던 쿼리는 기존 노드, 간선, 위치, 텍스트 표현, basic-block 경계가 달라져 예전 설명이 맞지 않을 수 있습니다.

요약

- C/C++에서 std::regex 의 ECMAScript 정규식 파서를 추가하고, Comdb2 C API 및 Bloomberg BDE 관련 데이터 흐름 모델을 보강했습니다. - Go에서 github.com/coder/websocket 을 새로 모델링하고, Rust에서 AnyAttr·DocComment 지원과 비동기 흐름 분석을 개선했습니다. - JavaScript/TypeScript에서 Workflow SDK의 "use workflow"·"use step" 지시문을 인식하고, Hapi 라우트 추적을 개선했습니다. - C# 쿼리, GitHub Actions 쿼리, CodeQL CLI의 오류 처리와 데이터 확장 처리 방식을 조정했습니다. - Go 컨트롤 플로 그래프가 공유 CFG 라이브러리로 바뀌면서 그래프 구조와 관련 API가 변경됐습니다.

바뀐 것

새 기능 7

  • C/C++에서 std::regex 의 ECMAScript 정규식 파서를 지원합니다.
  • Comdb2 C API용 SQL 주입 sink 모델과 Bloomberg BDE codecs 및 byte-stream deserializers의 flow summaries를 추가했습니다.
  • Go에서 github.com/coder/websocket import path를 모델링합니다.
  • Rust extractor가 AnyAttr와 DocComment 클래스를 지원합니다.
  • JavaScript/TypeScript에서 Workflow SDK의 "use workflow"와 "use step" 지시문을 인식합니다.
  • actions/unpinned-tag 쿼리에서 ! 접두사를 사용해 trusted set에서 owners를 제거할 수 있습니다.
  • codeql query compile이 --dil-constants와 --dump-dil 조합을 지원합니다.

개선 4

  • Rust에서 await가 있는 async blocks의 data flow를 개선하고 native-tls, async-native-tls, tokio-native-tls의 flow summaries를 추가했습니다.
  • Hapi route-handler와 request-input 추적을 custom route-registration helpers와 higher-order functions를 통해 개선했습니다.
  • cs/web/missing-x-frame-options 쿼리가 ASP.NET Core response headers와 Content Security Policy frame-ancestors directives를 clickjacking 보호로 인식합니다.
  • data extension을 로드하는 명령이 pack의 dataExtensions 목록과 일치하는 파일이 없을 때만 경고합니다.

기타 3

  • macOS 27과 Xcode 27 조합에서는 traced analysis에 필요한 multi-architecture x86-64/arm64 binaries가 없어 compiled languages의 autobuild와 manual build mode를 지원하지 않습니다.
  • 표준 오류의 오류와 경고 메시지에 ERROR: 및 WARNING: 접두사가 추가됐으며, 구조화 출력은 그대로 유지됩니다.
  • Go control-flow graph가 shared CFG library로 바뀌고, BasicBlocks::Cfg가 제거되며 ControlFlow::EntryNode, ControlFlow::ExitNode, SwitchStmt.getExpr가 추가되고, IfStmt.getCond는 IfStmt.getCondition으로 대체되며, IfStmt.getThen과 LoopStmt.getBody의 반환 형식이 Stmt로 변경되고, 여러 IR instruction class가 통합됐습니다.

수정 3

  • cs/web/xss 쿼리가 WriteLiteral로 작성된 Razor tag-helper attribute values를 더 이상 XSS sink로 보지 않습니다.
  • CLI가 query suites의 잘못된 qlpack: 및 from: 값을 충돌 없이 명확한 오류로 보고합니다.
  • YAML data-extension 정수가 signed 32-bit 범위를 벗어나면 조용히 잘라내지 않고 오류를 냅니다.

원문 제목 · CodeQL 2.27.2 improves C++, Go, Rust, and JavaScript analysis