CodeQL 2.27.4更新了什么?云端扫描与本地CLI分开看
CodeQL 2.27.4改进多语言扫描误报,调整CLI诊断输出、查询包文件边界检查及CWE标签。GitHub.com自动部署新版本,GHES和本地CLI用户需分别确认升级与旧配置兼容性。
CodeQL 2.27.4的升级重点,取决于团队怎样使用它:GitHub.com代码扫描由平台自动部署新版本,企业自建GHES与本地CLI则需要分别确认更新。此次版本既改善多语言扫描准确性,也调整了命令行输出、查询包打包检查和部分TypeScript提取器配置。

使用云端代码扫描,先确认部署范围
GitHub说明,每个新的CodeQL版本都会自动部署给GitHub.com上的code scanning用户。CodeQL 2.27.4的功能还将包含在GitHub Enterprise Server 3.24中;正在使用较旧GHES版本的组织,可按官方说明手动升级CodeQL。
这里涉及两个日期:完整版本日志标注的是2026年11月2日,GitHub产品公告则发布于11月4日。阅读更新记录时应保留这一区别,也不要把GitHub.com的自动更新扩大解释为所有本地工具和企业服务器都已完成升级。
运行本地CLI,关注输出流和查询包文件
如果扫描结果需要交给脚本处理,2.27.4有一项直接相关的修复:Java虚拟机警告、初始化错误改写到标准错误,不再混入JSON等机器可读标准输出。使用CLI搭建自动化流程的团队,可据此复核结果解析和诊断日志的处理。
自定义查询包还增加了文件边界保护。执行codeql pack bundle或codeql pack publish时,工具会解析符号链接,并检查文件是否仍处于pack根目录内;指向目录外的文件会被忽略,同时产生警告。打包完成后应查看实际内容,不能只以命令执行结束判断包内依赖完整。
本地JavaScript/TypeScript扫描还有配置变化:SEMMLE_TYPESCRIPT_HOME环境变量不再受支持,提取器会忽略它并使用自带的TypeScript编译器。依赖该变量的旧工作流应一并核验。
查看告警结果,按语言识别准确性改进
Java/Kotlin扩展了日志注入查询对JDK、Apache Commons Lang和Text、Guava、OWASP Java Encoder与Spring Framework中清理器和清理条件的识别;路径注入分析也识别更多子串条件、字符串替换及删除操作。
Rust的分配大小、日志注入和明文日志相关分析减少部分误报。C/C++不再误报std::byte*缓冲区的有意指针运算,也不再对标有[[maybe_unused]]的相应变量提示未使用,并新增cpp-code-quality套件。JavaScript/TypeScript修正了js/invalid-prototype-value对对象字面量中计算型__proto__属性的误报。

报告标签变化,不等于安全规则消失
C#、Java/Kotlin、JavaScript/TypeScript、Python、Ruby和Swift的部分正则表达式及相关查询移除了CWE-730标签,其他CWE标签继续保留。完整日志解释,MITRE已禁止用CWE-730进行漏洞映射,因此这次调整不能理解成对应查询已被删除或相关代码已无风险。
对使用者而言,适合分三步核对本次更新:确认实际执行CodeQL的环境与版本,检查CLI及自定义pack兼容性,再结合查询和标签变化解读告警差异。这样能把工具行为变化与项目代码本身的变化分开,减少对报告数量的误判。
火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。
















