OpenID Connect客户端原子耗尽漏洞分析
漏洞概述
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
漏洞影响
通过调用oidcc_provider_configuration_worker:get_provider_configuration/1或oidcc_provider_configuration_worker:get_jwks/1函数,攻击者可能造成原子耗尽导致的拒绝服务攻击。
由于名称通常作为静态值在应用程序中使用,实际被利用的可能性较低。
技术细节
漏洞存在于oidcc_provider_configuration_worker:get_ets_table_name/1函数中。该函数调用了erlang:list_to_atom/1,在极少数情况下,如果oidcc_provider_configuration_worker:get_*/1的第二个参数每次都用不同的原子调用,最终可能导致原子表填满,进而使节点崩溃。
漏洞代码示例
|
|
修复方案
已修复版本
- 3.0.2
- 3.1.2
- 3.2.0-beta.3
临时解决方案
确保仅将有效的提供者配置工作器名称传递给相关函数。
参考链接
- 原子耗尽安全编码指南
- CVE详细记录
- ENISA安全公告
- GitHub安全公告:GHSA-mj35-2rgf-cv8p
安全指标
CVSS评分: 5.3(中等) 攻击向量: 本地 影响范围: 可用性高影响
弱点类型: CWE-400(不可控资源消耗)