Skip to main content

用于 CodeQL 分析的 Java 和 Kotlin 查询

当您选择 defaultsecurity-extended 查询套件时,浏览 CodeQL 用于分析使用 Java 或 Kotlin 编写的代码的查询。

谁可以使用此功能?

Code scanning 可用于 GitHub.com 上的所有公共存储库。 若要在组织拥有的专用存储库中使用 code scanning,必须具有 GitHub Advanced Security 许可证。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

CodeQL 包含许多用来分析 Java 或 Kotlin 代码的查询。 默认情况下,default 查询套件中的所有查询都会运行。 如果选择使用 security-extended 查询套件,则会运行其他查询。 有关详细信息,请参阅“CodeQL 查询套件”。

注意:用于 Kotlin 的 CodeQL 分析目前为 beta 版。 在 beta 版中,Kotlin 的分析将不如其他语言的 CodeQL 分析全面。

用于 Java 或 Kotlin 分析的内置查询

下表列出了最新版本的 CodeQL 操作和 CodeQL CLI 的可用查询。 有关详细信息,请参阅 CodeQL 文档中的 CodeQL 更改日志

注意:**** code scanning 的 GitHub 自动修复功能为 beta 版。 功能和文档可能会有变动。 在此阶段,此功能仅限用于 CodeQL 识别的 C#、Go、Java、JavaScript/TypeScript、Python 和 Ruby 警报。 如果你有企业帐户并使用 GitHub Advanced Security,则你的企业有权访问 beta 版本。

查询名称相关的 CWE默认延期Autofix
TrustManager 接受所有证书295
Android WebView 接受所有证书295
启用了 Android 可调试属性489
Android 片段注入470
PreferenceActivity 内的 Android 片段注入470
Android 意图重定向926、940
启用了 Android Web 视图调试489
存档提取期间的任意文件访问权限(“Zip Slip”)022
使用字符串串联来生成命令行078、088
Cookie 中敏感信息的明文存储315
跨站脚本079
依赖 JCenter/Bintray 作为项目存储库1104
用户控制数据的反序列化502
检测 JHipster 生成器的漏洞 CVE-2019-16303338
禁用了 Netty HTTP 头验证93、113
禁用了 Spring CSRF 保护352
表达式语言注入 (JEXL)094
表达式语言注入 (MVEL)094
表达式语言注入 (Spring)094
在 Maven 项目上传/下载中使用 HTTPS 或 SFTP URL 时失败300、319、494、829
未能使用安全 Cookie614
Groovy 语言的注入094
HTTP 响应拆分113
复合分配中的隐式收缩转换190、192、197、681
隐式导出的 Android 组件926
广播接收器对意图进行不当验证925
低效的正则表达式1333、730、400
通过堆栈跟踪的信息泄露209、497
不安全的 Bean 验证094
不安全的 LDAP 身份验证522、319
不安全的本地身份验证287
不安全的随机性330, 338
意图 URI 权限操作266、926
使用用户控制的名称进行 JNDI 查找074
从用户控制的来源生成的 LDAP 查询090
JWT 签名检查缺失347
具有用户控制输入的 OGNL 表达式语言语句917
过于宽松的正则表达式范围020
来自远程库的部分路径遍历漏洞023
用于不受控制数据的多项式正则表达式1333、730、400
从用户控制的来源生成的查询089、564
从全局可写入文件读取732
正则表达式注入730、400
解析用户控制数据中的 XML 外部实体611、776、827
服务器端请求伪造918
服务器端的模板注入1336、094
不受控命令行078、088
内容解析中所用不受控数据441、610
路径表达式中使用的不受控数据022、023、036、073
不安全的主机名验证297
来自远程源的 URL 转发552
来自远程来源的 URL 重定向601
使用已破解的或有风险的加密算法327、328
使用密钥大小不足的加密算法326
在安全随机数生成器中使用可预测种子335、337
使用外部控制的格式字符串134
使用隐式 PendingIntents927
使用不带 OAEP 的 RSA 算法780
数字强制转换中的用户控制数据197、681
在权限检查中使用了用户控制数据807、290
使用静态初始化矢量进行加密329、1204
XPath 注入643
使用用户控制样式表进行 XSLT 转换074
通过 JavaScript 泄露访问 Java 对象方法079
Android APK 的安装094
Android 缺少证书固定295
Android 敏感键盘缓存524
Android WebSettings 文件访问200
Android Web 视图 JavaScript 设置079
Android Web 视图设置允许访问内容链接200
允许应用程序备份312
使用注入的环境变量生成命令078、088、454
Android 文件系统中敏感信息的明文存储312
使用“Properties”类的敏感信息明文存储313
使用 Android 上 SharedPreferences 的敏感信息明文存储312
使用 Android 上本地数据库对敏感信息进行明文存储312
循环条件下窄类型与宽类型的比较190、197
使用相对路径来执行命令078、088
向通知公开敏感信息200
向 UI 文本视图公开敏感信息200
API 调用中的硬编码凭证798
用户所提供数组索引的验证不正确129
对用户所提供用于数组构造的大小的验证不正确129
不安全的基本身份验证522、319
不安全的 JavaMail SSL 配置297
用于进行本地身份验证的不安全地生成的密钥287
将敏感的信息插入日志文件532
经由 ResultReceiver 泄露敏感信息927
经由隐式意图泄露敏感信息927
临时目录内的本地信息泄漏200、732
日志注入117
退出条件无法满足的循环835
内容提供程序中缺失读取或写入权限926
部分路径遍历漏洞023
通过与可能不受信任的字符串串联生成的查询089、564
套接字身份验证中的争用条件421
检查时间、使用时间争用条件367
信任边界冲突501
算术表达式中的不受控数据190、191
未释放的锁764、833
不安全的证书信任273
Android Web 视图中的不安全资源提取749、079
使用有可能已破解或有风险的加密算法327、328
使用具有潜在危险的函数676
用户控制的敏感方法绕过807、290
算术表达式中的用户控制数据190、191