描述
影响
通过调用 oidcc_provider_configuration_worker:get_provider_configuration/1 或 oidcc_provider_configuration_worker:get_jwks/1,有可能导致原子耗尽从而引发拒绝服务攻击。
由于名称通常在使用 oidcc 的应用程序中作为静态值提供,因此不太可能被利用。
详情
用于说明漏洞的示例。
|
|
漏洞存在于 oidcc_provider_configuration_worker:get_ets_table_name/1 中。
该函数 get_ets_table_name 调用了 erlang:list_to_atom/1。
https://github.com/erlef/oidcc/blob/018dbb53dd752cb1e331637d8e0e6a489ba1fae9/src/oidcc_provider_configuration_worker.erl#L385-L388
可能存在一种情况(概率极低),oidcc_provider_configuration_worker:get_*/1 的第二个参数每次被调用时都使用不同的原子,这最终导致原子表被填满,节点崩溃。
补丁
已在版本 3.0.2、3.1.2 和 3.2.0-beta.3 中修复。
变通方案
确保只将有效的提供者配置工作程序名称传递给这些函数。
参考
- https://erlef.github.io/security-wg/secure_coding_and_deployment_hardening/atom_exhaustion.html
- https://www.cve.org/CVERecord?id=CVE-2024-31209
- https://euvd.enisa.europa.eu/enisa/EUVD-2024-1249
- GHSA-mj35-2rgf-cv8p
参考链接
- GHSA-mj35-2rgf-cv8p
- erlef/oidcc@2f304d8
- erlef/oidcc@48171fb
- erlef/oidcc@ac458ed
- https://erlef.github.io/security-wg/secure_coding_and_deployment_hardening/atom_exhaustion.html
- https://github.com/erlef/oidcc/blob/018dbb53dd752cb1e331637d8e0e6a489ba1fae9/src/oidcc_provider_configuration_worker.erl#L385-L388
- https://nvd.nist.gov/vuln/detail/CVE-2024-31209
安全信息
严重程度
中等 CVSS 总体评分:5.3 / 10
CVSS v3 基本指标
- 攻击向量: 本地
- 攻击复杂度: 高
- 所需权限: 高
- 用户交互: 无
- 作用域: 已更改
- 机密性影响: 无
- 完整性影响: 无
- 可用性影响: 高
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H
EPSS 分数
0.019% (第4百分位) 此分数估计了该漏洞在未来30天内被利用的概率。数据由FIRST提供。
弱点
弱点 CWE-400 不受控制的资源消耗 产品未能正确控制有限资源的分配和维护,从而使攻击者能够影响消耗的资源量,最终导致可用资源耗尽。在MITRE上了解更多信息。
标识符
- CVE ID: CVE-2024-31209
- GHSA ID: GHSA-mj35-2rgf-cv8p
源代码
erlef/oidcc
致谢
- 发现者: mohamedalikhechine
- 发现者: robertfiko
- 修复开发者: maennchen
- 修复审查者: paulswartz
- 发现者: SAFE-Erlang-Elixir
注意: 此公告的某些或所有生态系统不支持Dependabot警报。