Kubernetes | 报告 #1387366 - elections.k8s.io 使用弱会话密钥,可能危及选举安全
时间线
ian 向 Kubernetes 提交了一份报告。
2021年11月1日 7:23 UTC
摘要
您好,我一直在开发一个名为 CookieMonster 的新工具,用于检测漏洞赏金项目中的错误会话签名配置。许多应用程序使用无状态 cookie 来保存会话信息(即谁已登录),但许多应用程序未能正确保护这些信息。@nagli 和我发现 elections.k8s.io 使用了一个弱的 Flask SECRET_KEY,实际上是字符串 “N/A”,来签名身份验证 cookie。
在许多应用程序中,这会导致应用程序完全被攻破,因为您可以操纵登录身份。对于选举投票系统来说,这将尤其成问题。在 Elekto 的情况下,似乎并非如此,因为 GitHub OAuth 令牌被注入到会话中,而不是用户 ID,这对于其他用户来说很难获取。然而,这可能会启用奇怪的攻击,例如在投票或身份验证流程中使用跨站请求伪造,因为我们能够操纵包含这些令牌的会话。
注意 Elekto 源代码中的警告(这是您设置为 “N/A” 的内容):
|
|
概念验证
由于 CookieMonster 尚未公开,您也可以使用 Flask-Unsign (pip3 install flask-unsign[wordlist]) 来验证此问题:
|
|
影响
弱密钥可能允许任意会话操纵。
ian 邀请另一位黑客作为合作者加入。
2021年11月1日 7:24 UTC
nagli 作为合作者加入此报告。
2021年11月1日 7:26 UTC
h1_analyst_caesar 将状态更改为已分类。
2021年11月4日 9:32 UTC
您好 @ian,
感谢您的提交!我们能够验证您的报告,并已将其提交给相应的修复团队进行审查。他们将告知我们此报告的最终裁决,以及是否/何时实施修复。请注意,状态和严重性可能会发生变化。
谢谢,
@turtle_shell
h1_analyst_caesar 将严重性从高更新为高 (7.5)。
2021年11月4日 9:36 UTC
我同意这是一个高严重性问题,而不是关键问题。
我的会话 cookie 如下所示:
|
|
它们都是不可猜测的私有令牌。没有可以篡改的值会危及应用程序的完整性,例如 role=admin cookie。
然而,能够篡改签名会话并不是可以轻易忽视的事情。
Kubernetes 奖励了 nagli 125 美元奖金。
2021年11月9日 4:58 UTC
感谢您提请我们注意!根据 Kubernetes 项目的 H1 范围,这超出了范围:
“社区管理工具 - 包括电子邮件列表、Google 文档、社区会议、Slack 频道等”
此外,这不太可能直接转化为对选举完整性的攻击等。
但是,我们想为这份优秀、高质量的报告颁发奖金,特别是因为我们将根据报告采取行动修复问题。
Kubernetes 奖励了 ian 125 美元奖金。
2021年11月9日 4:58 UTC
感谢您提请我们注意!根据 Kubernetes 项目的 H1 范围,这超出了范围:
“社区管理工具 - 包括电子邮件列表、Google 文档、社区会议、Slack 频道等”
此外,这不太可能直接转化为对选举完整性的攻击等。
但是,我们想为这份优秀、高质量的报告颁发奖金,特别是因为我们将根据报告采取行动修复问题。
tabbysable Kubernetes 工作人员关闭了报告并将状态更改为已解决。
2025年8月20日 20:51 UTC
ian 请求披露此报告。
2025年8月20日 20:54 UTC
nagli 发表评论。
2025年8月20日 20:54 UTC
对我来说没问题 @ian
此报告已被披露。
7天前
报告详情
项目 | 详情 |
---|---|
报告时间 | 2021年11月1日 7:23 UTC |
报告者 | ian |
报告对象 | Kubernetes |
管理状态 | 已管理 |
参与者 | 有参与者 |
报告 ID | #1387366 |
状态 | 已解决 |
严重性 | 高 (7.5) |
披露时间 | 2025年9月19日 20:54 UTC |
弱点 | 加密问题 - 通用 |
CVE ID | 无 |
赏金 | 250美元 |
账户详情 | 无 |