CVE-2024-31209
OpenID Connect client Atom Exhaustion in provider configuration worker ets table location
oidcc is the OpenID Connect client library for Erlang. Denial of Service (DoS) by Atom exhaustion is possible by calling oidcc_provider_configuration_worker:get_provider_configuration/1 or oidcc_provider_configuration_worker:get_jwks/1. This issue has been patched in version(s)3.1.2 & 3.2.0-beta.3.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- High
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
5.3
OpenID Connect client Atom Exhaustion in provider configuration worker ets table location
oidcc is the OpenID Connect client library for Erlang. Denial of Service (DoS) by Atom exhaustion is possible by calling oidcc_provider_configuration_worker:get_provider_configuration/1 or oidcc_provider_configuration_worker:get_jwks/1. This issue has been patched in version(s)3.1.2 & 3.2.0-beta.3.
- Record
CVE-2024-31209- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
EUVDEUVD-2024-1249
5.3
oidcc is the OpenID Connect client library for Erlang. Denial of Service (DoS) by Atom exhaustion is possible by calling oidcc_provider_configuration_worker:get_provider_configuration/1 or oidcc_provider_configuration_worker:get_jwks/1. This issue has been patched in version(s)3.1.2 & 3.2.0-beta.3.
- Record
EUVD-2024-1249- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-mj35-2rgf-cv8p
5.3
OpenID Connect client Atom Exhaustion in provider configuration worker ets table location
Impact
DOS by Atom exhaustion is possible by calling oidcc_provider_configuration_worker:get_provider_configuration/1 or oidcc_provider_configuration_worker:get_jwks/1.
Since the name is usually provided as a static value in the application using oidcc, this is unlikely to be exploited.
Details
Example to illustrate the vulnerability.
{ok, Claims} =
oidcc:retrieve_userinfo(
Token,
myapp_oidcc_config_provider,
<<"client_id">>,
<<"client_secret">>,
#{}
)
The vulnerability is present in oidcc_provider_configuration_worker:get_ets_table_name/1.
The function get_ets_table_name is calling erlang:list_to_atom/1.
There might be a case (Very highly improbable) where the 2nd argument of
oidcc_provider_configuration_worker:get_*/1 is called with a different atom each time which eventually leads to
the atom table filling up and the node crashing.
Patches
Patched in 3.0.2, 3.1.2 & 3.2.0-beta.3
Workarounds
Make sure only valid provider configuration worker names are passed to the functions.
References
- Record
GHSA-mj35-2rgf-cv8p- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
NVD
5.3
oidcc is the OpenID Connect client library for Erlang. Denial of Service (DoS) by Atom exhaustion is possible by calling oidcc_provider_configuration_worker:get_provider_configuration/1 or oidcc_provider_configuration_worker:get_jwks/1. This issue has been patched in version(s)3.1.2 & 3.2.0-beta.3.
- Record
CVE-2024-31209- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
OSV
5.3
OpenID Connect client Atom Exhaustion in provider configuration worker ets table location
oidcc is the OpenID Connect client library for Erlang. Denial of Service (DoS) by Atom exhaustion is possible by calling oidcc_provider_configuration_worker:get_provider_configuration/1 or oidcc_provider_configuration_worker:get_jwks/1. This issue has been patched in version(s)3.1.2 & 3.2.0-beta.3.
- Record
CVE-2024-31209- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
OSVGHSA-mj35-2rgf-cv8p
5.3
OpenID Connect client Atom Exhaustion in provider configuration worker ets table location
Impact
DOS by Atom exhaustion is possible by calling oidcc_provider_configuration_worker:get_provider_configuration/1 or oidcc_provider_configuration_worker:get_jwks/1.
Since the name is usually provided as a static value in the application using oidcc, this is unlikely to be exploited.
Details
Example to illustrate the vulnerability.
{ok, Claims} =
oidcc:retrieve_userinfo(
Token,
myapp_oidcc_config_provider,
<<"client_id">>,
<<"client_secret">>,
#{}
)
The vulnerability is present in oidcc_provider_configuration_worker:get_ets_table_name/1.
The function get_ets_table_name is calling erlang:list_to_atom/1.
There might be a case (Very highly improbable) where the 2nd argument of
oidcc_provider_configuration_worker:get_*/1 is called with a different atom each time which eventually leads to
the atom table filling up and the node crashing.
Patches
Patched in 3.0.2, 3.1.2 & 3.2.0-beta.3
Workarounds
Make sure only valid provider configuration worker names are passed to the functions.
References
- Record
GHSA-mj35-2rgf-cv8p- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
oidccHex |
3.0.0 up to 3.0.2 | 3.0.2 |
oidccHex |
3.1.0 up to 3.1.2 | 3.1.2 |
oidccHex |
3.2.0-beta.1 up to 3.2.0-beta.3 | 3.2.0-beta.3 |
oidccHex |
3.0.0 up to 3.0.2, plus listed versions 3.0.1 |
3.0.2 |
oidccHex |
3.1.0 up to 3.1.2, plus listed versions 3.1.13.1.2-beta.1 |
3.1.2 |
oidccHex |
3.2.0-beta.1 up to 3.2.0-beta.3, plus listed versions 3.2.0-beta.2 |
3.2.0-beta.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-31209 is a medium vulnerability (CVSS 5.3) in Erlef Oidcc, published April 3, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.24%, the 14th percentile. Fixed in oidcc 3.0.2.
References
github.com/erlef/oidcc/security/advisories/GHSA-mj35-2rgf-cv8p
github.com/erlef/oidcc/commit/2f304d877c7e0613d6fd952d7feacbf40dbc355c
github.com/erlef/oidcc/commit/48171fb62688fb4eec1ead0884aa501e0aa68649
github.com/erlef/oidcc/commit/ac458ed88dc292aad6fa7343f6a53e73c560fb1a
github.com/erlef/oidcc/blob/018dbb53dd752cb1e331637d8e0e6a489ba1fae9/src/oidcc_provider_configuration_worker.erl
erlef.github.io/security-wg/secure_coding_and_deployment_hardening/atom_exhaustion.html