CodeQL 2.23.7 和 2.23.8 为 Go 和 Rust 添加安全查询

发布: (2025年12月19日 GMT+8 07:03)
4 min read

Source: GitHub Changelog

CodeQL 是 GitHub 的 Code ScanningCode Quality 产品背后的静态分析引擎,用于发现并修复与代码质量和安全相关的问题。我们最近发布了 CodeQL 2.23.7 和 2.23.8。这些版本带来了针对 Go 和 Rust 的新安全查询、整体分析准确性的提升,以及多语言的框架更新。

Query changes

Go

  • 新增 go/cookie-secure-not-set,用于检测未设置 Secure 标志的 Cookie,可能导致敏感信息泄露。
  • 新增 go/weak-crypto-algorithm,用于检测使用已破损或弱的加密算法。
  • 新增 go/weak-sensitive-data-hashing,用于检测在敏感数据上使用弱加密哈希算法。
  • go/cookie-http-only-not-set 从实验包提升为正式查询;它识别缺少 HttpOnly 标志的 Cookie,可能构成 XSS 风险。最初由 GitHub 用户 @edvraa 贡献。

Rust

  • 新增 rust/xss,用于检测跨站脚本(XSS)漏洞。
  • 新增 rust/disabled-certificate-check,用于检测已禁用的 TLS 证书检查。
  • 新增三个示例查询(rust/examples/empty-ifrust/examples/simple-sql-injectionrust/examples/simple-constant-password),帮助您学习为 Rust 编写 CodeQL 查询。

Language and framework support

Java/Kotlin

  • Java 分析不再强制在 Maven 构建中使用 --source--target 编译器标志;Maven 现在使用项目自身的编译器配置,提高了构建兼容性。
  • 对仅提取字符串固定长度前缀或后缀的操作(例如 Java 中的 substring 或 Kotlin 中的 take),若长度限制在 7 个字符或以下,则在 java/sensitive-log 查询中被视为清理器,因为日志消息内容已被截断。

JavaScript/TypeScript

  • 修复了 Next.js 模型中的一个 bug,该 bug 导致分析在 app/pages 文件夹中遗漏服务器端污点来源。

Rust

  • 改进了 rust/access-invalid-pointer 查询,新增了流来源和屏障。

C#

  • 在使用无构建分析(默认模式)时,编译错误现在会包含在调试日志中。
  • 新增了一个提取器选项,可在无构建模式下指定依赖下载的自定义目录:-O buildless_dependency_dir=

Python

  • 修复了 Python 提取器在处理导入时的一个 bug,之前在 find_module 中缺少导入会抛出 KeyError。此修复来自 GitHub 用户 @akoeplinger贡献

如需查看完整的更改列表,请参阅版本 2.23.72.23.8 的完整更新日志。每个新版本的 CodeQL 都会自动部署到 GitHub.com 上的 GitHub Code Scanning 和 GitHub Code Quality 用户。此发布中引入的功能和修复将包含在 GitHub Enterprise Server (GHES) 版本 3.20 中。如果您使用的是较旧的 GHES 版本,可以手动升级您的 CodeQL 版本

Back to Blog

相关文章

阅读更多 »

对 Go 和 Rust 的热爱吐槽!

警告:吐槽! 引言 我已经厌倦了这玩意儿。每隔几周,就会有某个 Rustacean 爬进来,得意地说 “但你尝试过 fearless concurrency …”。