Refine your search
2 vulnerabilities found for by erlef
CVE-2026-75759 (GCVE-0-2026-75759)
Vulnerability from cvelistv5
Published
2026-08-30 01:12
Modified
2026-08-30 01:12
Severity ?
VLAI Severity ?
EPSS score ?
CWE
- CWE-347 - Improper Verification of Cryptographic Signature
Summary
Improper Verification of Cryptographic Signature vulnerability in erlef oidcc allows an unauthenticated attacker to impersonate an arbitrary user via an encrypted ID token or JARM response carrying no nested signature. OpenID Connect Core 1.0 section 2 requires that an encrypted ID token be signed then encrypted, with the result being a Nested JWT, and JARM processing rule 5 requires the client to check the signature unconditionally. oidcc instead accepted a JWE wrapping unsigned claims as fully validated, so anyone holding the relying party's public encryption key could mint a token with an arbitrary sub, iss, and aud without possessing the provider's signing key.
In oidcc_jwt_util:verify_decrypted_token/4, a decrypted payload that is not a signed JWS fell back to parsing the plaintext claims and returning them with no verifying key. oidcc_token:int_validate_jwt/4 then matched on the JOSE structure type rather than on whether a signature had been verified, and returned success. The JARM path in oidcc_token:validate_jarm/3 is reachable through the browser front channel. UserInfo responses are not affected, because OpenID Connect Core 1.0 section 5.3.2 permits them to be encrypted without also being signed.
This issue affects oidcc: from 3.2.0-beta.1 before 3.9.0.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"collectionURL": "https://repo.hex.pm",
"cpes": [
"cpe:2.3:a:erlef:oidcc:*:*:*:*:*:*:*:*"
],
"defaultStatus": "unaffected",
"modules": [
"oidcc_jwt_util",
"oidcc_token"
],
"packageName": "oidcc",
"packageURL": "pkg:hex/oidcc",
"product": "oidcc",
"programFiles": [
"src/oidcc_jwt_util.erl",
"src/oidcc_token.erl"
],
"programRoutines": [
{
"name": "oidcc_jwt_util:verify_decrypted_token/4"
},
{
"name": "oidcc_jwt_util:verify_not_none_alg/1"
},
{
"name": "oidcc_token:int_validate_jwt/4"
},
{
"name": "oidcc_token:validate_id_token/3"
},
{
"name": "oidcc_token:validate_jarm/3"
}
],
"repo": "https://github.com/erlef/oidcc",
"vendor": "erlef",
"versions": [
{
"lessThan": "3.9.0",
"status": "affected",
"version": "3.2.0-beta.1",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://github.com",
"cpes": [
"cpe:2.3:a:erlef:oidcc:*:*:*:*:*:*:*:*"
],
"defaultStatus": "unaffected",
"modules": [
"oidcc_jwt_util",
"oidcc_token"
],
"packageName": "erlef/oidcc",
"packageURL": "pkg:github/erlef/oidcc",
"product": "oidcc",
"programFiles": [
"src/oidcc_jwt_util.erl",
"src/oidcc_token.erl"
],
"programRoutines": [
{
"name": "oidcc_jwt_util:verify_decrypted_token/4"
},
{
"name": "oidcc_jwt_util:verify_not_none_alg/1"
},
{
"name": "oidcc_token:int_validate_jwt/4"
},
{
"name": "oidcc_token:validate_id_token/3"
},
{
"name": "oidcc_token:validate_jarm/3"
}
],
"repo": "https://github.com/erlef/oidcc",
"vendor": "erlef",
"versions": [
{
"lessThan": "5f62fbccdae8526ff62653b8901657a6c1400fd9",
"status": "affected",
"version": "37a1361f704889816db2873f72d744d63ec39568",
"versionType": "git"
}
]
}
],
"configurations": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eReachable only when the OpenID Provider advertises ID token encryption (\u003ccode\u003eid_token_encryption_alg_values_supported\u003c/code\u003e and \u003ccode\u003eid_token_encryption_enc_values_supported\u003c/code\u003e), or, for the JARM path, authorization response encryption (\u003ccode\u003eauthorization_encryption_alg_values_supported\u003c/code\u003e and \u003ccode\u003eauthorization_encryption_enc_values_supported\u003c/code\u003e), and the relying party has an encryption key configured. Without those, decryption fails before the affected code is reached.\u003c/p\u003e"
},
{
"base64": false,
"type": "text/markdown",
"value": "Reachable only when the OpenID Provider advertises ID token encryption (`id_token_encryption_alg_values_supported` and `id_token_encryption_enc_values_supported`), or, for the JARM path, authorization response encryption (`authorization_encryption_alg_values_supported` and `authorization_encryption_enc_values_supported`), and the relying party has an encryption key configured. Without those, decryption fails before the affected code is reached."
}
],
"value": "Reachable only when the OpenID Provider advertises ID token encryption (id_token_encryption_alg_values_supported and id_token_encryption_enc_values_supported), or, for the JARM path, authorization response encryption (authorization_encryption_alg_values_supported and authorization_encryption_enc_values_supported), and the relying party has an encryption key configured. Without those, decryption fails before the affected code is reached."
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:erlef:oidcc:*:*:*:*:*:*:*:*",
"versionEndExcluding": "3.9.0",
"versionStartIncluding": "3.2.0-beta.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
],
"operator": "AND"
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "EQSTLab"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Jonatan M\u00e4nnchen / EEF"
},
{
"lang": "en",
"type": "coordinator",
"value": "Jonatan M\u00e4nnchen / EEF"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eImproper Verification of Cryptographic Signature vulnerability in erlef oidcc allows an unauthenticated attacker to impersonate an arbitrary user via an encrypted ID token or JARM response carrying no nested signature. OpenID Connect Core 1.0 section 2 requires that an encrypted ID token be signed then encrypted, with the result being a Nested JWT, and JARM processing rule 5 requires the client to check the signature unconditionally. \u003ccode\u003eoidcc\u003c/code\u003e instead accepted a JWE wrapping unsigned claims as fully validated, so anyone holding the relying party\u0027s public encryption key could mint a token with an arbitrary \u003ccode\u003esub\u003c/code\u003e, \u003ccode\u003eiss\u003c/code\u003e, and \u003ccode\u003eaud\u003c/code\u003e without possessing the provider\u0027s signing key.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eoidcc_jwt_util:verify_decrypted_token/4\u003c/code\u003e, a decrypted payload that is not a signed JWS fell back to parsing the plaintext claims and returning them with no verifying key. \u003ccode\u003eoidcc_token:int_validate_jwt/4\u003c/code\u003e then matched on the JOSE structure type rather than on whether a signature had been verified, and returned success. The JARM path in \u003ccode\u003eoidcc_token:validate_jarm/3\u003c/code\u003e is reachable through the browser front channel. UserInfo responses are not affected, because OpenID Connect Core 1.0 section 5.3.2 permits them to be encrypted without also being signed.\u003c/p\u003e\n\u003cp\u003eThis issue affects oidcc: from 3.2.0-beta.1 before 3.9.0.\u003c/p\u003e"
},
{
"base64": false,
"type": "text/markdown",
"value": "Improper Verification of Cryptographic Signature vulnerability in erlef oidcc allows an unauthenticated attacker to impersonate an arbitrary user via an encrypted ID token or JARM response carrying no nested signature. OpenID Connect Core 1.0 section 2 requires that an encrypted ID token be signed then encrypted, with the result being a Nested JWT, and JARM processing rule 5 requires the client to check the signature unconditionally. `oidcc` instead accepted a JWE wrapping unsigned claims as fully validated, so anyone holding the relying party\u0027s public encryption key could mint a token with an arbitrary `sub`, `iss`, and `aud` without possessing the provider\u0027s signing key.\n\nIn `oidcc_jwt_util:verify_decrypted_token/4`, a decrypted payload that is not a signed JWS fell back to parsing the plaintext claims and returning them with no verifying key. `oidcc_token:int_validate_jwt/4` then matched on the JOSE structure type rather than on whether a signature had been verified, and returned success. The JARM path in `oidcc_token:validate_jarm/3` is reachable through the browser front channel. UserInfo responses are not affected, because OpenID Connect Core 1.0 section 5.3.2 permits them to be encrypted without also being signed.\n\nThis issue affects oidcc: from 3.2.0-beta.1 before 3.9.0."
}
],
"value": "Improper Verification of Cryptographic Signature vulnerability in erlef oidcc allows an unauthenticated attacker to impersonate an arbitrary user via an encrypted ID token or JARM response carrying no nested signature. OpenID Connect Core 1.0 section 2 requires that an encrypted ID token be signed then encrypted, with the result being a Nested JWT, and JARM processing rule 5 requires the client to check the signature unconditionally. oidcc instead accepted a JWE wrapping unsigned claims as fully validated, so anyone holding the relying party\u0027s public encryption key could mint a token with an arbitrary sub, iss, and aud without possessing the provider\u0027s signing key.\n\nIn oidcc_jwt_util:verify_decrypted_token/4, a decrypted payload that is not a signed JWS fell back to parsing the plaintext claims and returning them with no verifying key. oidcc_token:int_validate_jwt/4 then matched on the JOSE structure type rather than on whether a signature had been verified, and returned success. The JARM path in oidcc_token:validate_jarm/3 is reachable through the browser front channel. UserInfo responses are not affected, because OpenID Connect Core 1.0 section 5.3.2 permits them to be encrypted without also being signed.\n\nThis issue affects oidcc: from 3.2.0-beta.1 before 3.9.0."
}
],
"impacts": [
{
"capecId": "CAPEC-475",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-475 Signature Spoofing by Improper Validation"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"baseScore": 7.6,
"baseSeverity": "HIGH",
"privilegesRequired": "NONE",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "PASSIVE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-347",
"description": "CWE-347 Improper Verification of Cryptographic Signature",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-30T01:12:43.435Z",
"orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"shortName": "EEF"
},
"references": [
{
"tags": [
"related",
"vendor-advisory"
],
"url": "https://github.com/erlef/oidcc/security/advisories/GHSA-533g-4vf3-xwrj"
},
{
"tags": [
"related"
],
"url": "https://cna.erlef.org/cves/CVE-2026-75759.html"
},
{
"tags": [
"related"
],
"url": "https://osv.dev/vulnerability/EEF-CVE-2026-75759"
},
{
"tags": [
"patch"
],
"url": "https://github.com/erlef/oidcc/commit/5f62fbccdae8526ff62653b8901657a6c1400fd9"
}
],
"source": {
"discovery": "EXTERNAL"
},
"title": "Encrypted ID token or JARM response accepted without a nested signature in erlef oidcc"
}
},
"cveMetadata": {
"assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
"assignerShortName": "EEF",
"cveId": "CVE-2026-75759",
"datePublished": "2026-08-30T01:12:43.435Z",
"dateReserved": "2026-08-21T09:30:01.395Z",
"dateUpdated": "2026-08-30T01:12:43.435Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2024-31209 (GCVE-0-2024-31209)
Vulnerability from cvelistv5
Published
2024-04-04 16:04
Modified
2024-09-03 18:26
Severity ?
VLAI Severity ?
EPSS score ?
CWE
- CWE-400 - Uncontrolled Resource Consumption
Summary
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`.
References
Impacted products
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2024-08-02T01:46:04.592Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"name": "https://github.com/erlef/oidcc/security/advisories/GHSA-mj35-2rgf-cv8p",
"tags": [
"x_refsource_CONFIRM",
"x_transferred"
],
"url": "https://github.com/erlef/oidcc/security/advisories/GHSA-mj35-2rgf-cv8p"
},
{
"name": "https://github.com/erlef/oidcc/commit/2f304d877c7e0613d6fd952d7feacbf40dbc355c",
"tags": [
"x_refsource_MISC",
"x_transferred"
],
"url": "https://github.com/erlef/oidcc/commit/2f304d877c7e0613d6fd952d7feacbf40dbc355c"
},
{
"name": "https://github.com/erlef/oidcc/commit/48171fb62688fb4eec1ead0884aa501e0aa68649",
"tags": [
"x_refsource_MISC",
"x_transferred"
],
"url": "https://github.com/erlef/oidcc/commit/48171fb62688fb4eec1ead0884aa501e0aa68649"
},
{
"name": "https://github.com/erlef/oidcc/commit/ac458ed88dc292aad6fa7343f6a53e73c560fb1a",
"tags": [
"x_refsource_MISC",
"x_transferred"
],
"url": "https://github.com/erlef/oidcc/commit/ac458ed88dc292aad6fa7343f6a53e73c560fb1a"
},
{
"name": "https://github.com/erlef/oidcc/blob/018dbb53dd752cb1e331637d8e0e6a489ba1fae9/src/oidcc_provider_configuration_worker.erl#L385-L388",
"tags": [
"x_refsource_MISC",
"x_transferred"
],
"url": "https://github.com/erlef/oidcc/blob/018dbb53dd752cb1e331637d8e0e6a489ba1fae9/src/oidcc_provider_configuration_worker.erl#L385-L388"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2024-31209",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2024-08-07T15:32:55.551475Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2024-09-03T18:26:21.909Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "oidcc",
"vendor": "erlef",
"versions": [
{
"status": "affected",
"version": "\u003e= 3.0.0, \u003c 3.0.2"
},
{
"status": "affected",
"version": "\u003e= 3.1.0, \u003c 3.1.2"
},
{
"status": "affected",
"version": "\u003e= 3.2.0-beta.1, \u003c 3.2.0-beta.3"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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` \u0026 `3.2.0-beta.3`."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "HIGH",
"attackVector": "LOCAL",
"availabilityImpact": "HIGH",
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "NONE",
"integrityImpact": "NONE",
"privilegesRequired": "HIGH",
"scope": "CHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-400",
"description": "CWE-400: Uncontrolled Resource Consumption",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2024-04-04T16:04:43.255Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/erlef/oidcc/security/advisories/GHSA-mj35-2rgf-cv8p",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/erlef/oidcc/security/advisories/GHSA-mj35-2rgf-cv8p"
},
{
"name": "https://github.com/erlef/oidcc/commit/2f304d877c7e0613d6fd952d7feacbf40dbc355c",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/erlef/oidcc/commit/2f304d877c7e0613d6fd952d7feacbf40dbc355c"
},
{
"name": "https://github.com/erlef/oidcc/commit/48171fb62688fb4eec1ead0884aa501e0aa68649",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/erlef/oidcc/commit/48171fb62688fb4eec1ead0884aa501e0aa68649"
},
{
"name": "https://github.com/erlef/oidcc/commit/ac458ed88dc292aad6fa7343f6a53e73c560fb1a",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/erlef/oidcc/commit/ac458ed88dc292aad6fa7343f6a53e73c560fb1a"
},
{
"name": "https://github.com/erlef/oidcc/blob/018dbb53dd752cb1e331637d8e0e6a489ba1fae9/src/oidcc_provider_configuration_worker.erl#L385-L388",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/erlef/oidcc/blob/018dbb53dd752cb1e331637d8e0e6a489ba1fae9/src/oidcc_provider_configuration_worker.erl#L385-L388"
}
],
"source": {
"advisory": "GHSA-mj35-2rgf-cv8p",
"discovery": "UNKNOWN"
},
"title": "OpenID Connect client Atom Exhaustion in provider configuration worker ets table location"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2024-31209",
"datePublished": "2024-04-04T16:04:43.255Z",
"dateReserved": "2024-03-29T14:16:31.900Z",
"dateUpdated": "2024-09-03T18:26:21.909Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}