OpenID Connect客户端Atom耗尽漏洞分析
漏洞概述
CVE-2024-31209是一个中等严重性的安全漏洞,影响Erlang的OpenID Connect客户端库(oidcc)。该漏洞存在于提供者配置工作器的ETS表位置处理过程中。
受影响版本
-
= 3.0.0, < 3.0.2
-
= 3.1.0, < 3.1.2
-
= 3.2.0-beta.1, < 3.2.0-beta.3
已修复版本
- 3.0.2
- 3.1.2
- 3.2.0-beta.3
漏洞影响
通过调用oidcc_provider_configuration_worker:get_provider_configuration/1或oidcc_provider_configuration_worker:get_jwks/1函数,可能造成Atom资源耗尽,从而导致拒绝服务攻击(DOS)。
由于名称通常作为应用程序中的静态值提供,因此被利用的可能性较低。
技术细节
漏洞存在于oidcc_provider_configuration_worker:get_ets_table_name/1函数中。
该函数调用了erlang:list_to_atom/1,在极少数情况下(概率极低),当oidcc_provider_configuration_worker:get_*/1的第二个参数每次使用不同的atom调用时,最终会导致atom表填满,从而使节点崩溃。
漏洞示例代码
|
|
修复方案
补丁版本
- 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
安全评分
CVSS总体评分:5.3(中等)
CVSS v3基础指标
- 攻击向量:本地
- 攻击复杂度:高
- 所需权限:高
- 用户交互:无
- 范围:已更改
- 机密性:无影响
- 完整性:无影响
- 可用性:高影响
弱点分类
CWE-400:不受控制的资源消耗
产品未能正确控制有限资源的分配和维护,从而使攻击者能够影响消耗的资源量,最终导致可用资源耗尽。