Sakai加密漏洞分析:可预测随机数生成器导致密钥安全风险

本文详细分析了Sakai kernel-impl中EncryptionUtilityServiceImpl使用可预测伪随机数生成器生成服务器端加密密钥的安全漏洞,包括影响范围、攻击原理和修复方案。

漏洞详情

包名: maven - org.sakaiproject.kernel:sakai-kernel-impl

受影响版本: <= 23.3

修复版本: 23.5, 25.0 和 trunk

漏洞描述

影响

EncryptionUtilityServiceImpl 使用 RandomStringUtils 和默认的 java.util.Random 来初始化 AES256TextEncryptor 密码(serverSecretKey)。java.util.Random 是一个非加密安全的伪随机数生成器(PRNG),可以从有限的状态/种子信息(例如起始时间窗口)进行预测,这显著降低了生成密钥的有效搜索空间。

攻击者如果能够获取密文(例如受此服务保护的导出或静态字符串)并近似估算 PRNG 种子,就可以可行地重构 serverSecretKey 并解密受影响的数据。

修复补丁

SAK-49866 已在 Sakai 23.5、25.0 和 trunk 版本中修复。

致谢

  • 报告者:Suraj Gangwar
  • 修复者:Sam Ottenhoff (Longsight)

安全评分

严重程度: 低

CVSS 总体评分: 2.6/10

CVSS v3 基础指标:

  • 攻击向量:网络
  • 攻击复杂度:高
  • 所需权限:低
  • 用户交互:需要
  • 范围:未改变
  • 机密性:低
  • 完整性:无
  • 可用性:无

CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:N/A:N

弱点分类

弱点: CWE-337 - 伪随机数生成器(PRNG)中的可预测种子

伪随机数生成器(PRNG)从可预测的种子(如进程ID或系统时间)进行初始化。

参考信息

GHSA ID: GHSA-gr7h-xw4f-wh86

CVE ID: 无已知CVE

源代码: sakaiproject/sakai

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计