CodeQL 2.24.0 添加 Swift 6.2 和 .NET 10 支持,并改进对已压缩 JavaScript 的文件处理

发布: (2026年1月30日 GMT+8 07:17)
4 分钟阅读

Source: GitHub Changelog

CodeQL 是 GitHub 代码扫描背后的静态分析引擎(GitHub code scanning),它能够发现并修复代码中的安全问题。我们最近发布了 CodeQL 2.24.0,该版本新增了对新语言版本的支持、扩展了框架覆盖范围,并提升了多语言查询的准确性。

语言和框架支持

Swift

  • 已更新以支持对使用 Swift 6.2.2 和 6.2.3 构建的应用进行分析。

C#

  • 已添加对 .NET 10 和 C# 14 的支持。

JavaScript/TypeScript

  • 对于平均行长超过 200 的 JavaScript 文件,现在会被视为已压缩(minified),因此不会进行分析。
    若要分析已压缩的文件,请设置环境变量:

    CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES=true
  • 已添加对 Next.js 16 的 use cache 指令的支持。

  • 已添加对 React useRef Hook 的支持,并改进了对 current 属性的数据流跟踪。

Python

  • py/decompression-bomb 查询现已支持 compression.zstd 库(已在 Python 3.14 中加入)。
  • urllib.parse 添加了污点流模型,并为 python-socketio 包添加了远程流来源。
  • 提取器现在默认会分析隐藏目录中的文件。

Java/Kotlin

  • com.couchbase 添加了 sink 模型,支持 SQL 注入和硬编码凭证查询。
  • org.apache.commons.fileupload.FileItemjavax/jakarta.servlet.http.Partorg.apache.commons.fileupload.util.Streams 添加了更多数据流模型。

C/C++

  • 已添加对更多 Windows API 的支持,包括文件读取函数、命令行和环境变量 API,以及 SQLite 和 OpenSSL 库的流模型。

Rust

  • 方法解析现在会考虑 Deref trait,能够正确解析实现了 Deref 的接收者上的方法调用。
  • 已添加对 Axum Web 应用框架的支持。
  • 改进了对原始指针的类型推断,包括原始借用运算符和解引用。

查询更改

C#

  • Missing cross‑site request forgery token validation 查询扩展以支持 ASP.NET Core。
  • NHibernate.ISession.CreateSQLQueryNHibernate.IStatelessSession.CreateSQLQueryNHibernate.Impl.AbstractSessionImpl.CreateSQLQuery 添加为 SQL 注入 sink。
  • 在污点跟踪 sink 以及额外污点步骤的输入处,隐式读取 System.Collections.Generic.KeyValuePair.Value,当容器被污点化时会产生更多结果。

JavaScript/TypeScript

  • 修复了 Next.js 模型中的一个错误,该错误导致分析在 apipages 文件夹之外的 routepage 文件中遗漏服务器端污点来源。
  • 当未设置 content-type 头(默认 text/plain)时,new Response(x) 不再被视为反射型 XSS sink。

Java/Kotlin

  • Java 线程安全分析现在能够理解在构造函数内部对线程安全类的初始化。
  • java/ssrf 添加了一个 sanitizer,以在正则表达式检查确认值安全时抑制警报。
  • 所有 Spring RestTemplate 方法的 URI 模板变量现在被视为请求伪造 sink,这可能会为 java/ssrf 生成更多警报。

C/C++

  • 改进了 cpp/constant-comparison 查询的准确性,以减少误报。

Rust

  • 改进了 rust/unused-variablerust/unused-valuerust/access-invalid-pointerrust/access-after-lifetime-ended 查询的准确性,以减少误报。
  • 使用新的启发式 sink 扩展了 rust/hard-coded-cryptographic-value 查询,能够识别密码、初始化向量、随机数和盐。

有关完整的更改列表,请参阅完整的 版本 2.24.0 更新日志。每个新版本的 CodeQL 都会自动部署到 GitHub.com 上的 GitHub 代码扫描用户。CodeQL 2.24.0 中的新功能也将在未来的 GitHub Enterprise Server(GHES)版本中提供。如果您使用的是较旧的 GHES 版本,您可以手动升级 CodeQL 版本

Back to Blog

相关文章

阅读更多 »

Julia

请提供您希望翻译的具体摘录或摘要文本,我才能为您进行简体中文翻译。