CVE-2024-23656: Github.com/dexidp/dex Dex Discarding TLSconfig And Always Vulnerability
HIGHCVE-2024-23656 is a HIGH (CVSS 7.5) dex discarding tlsconfig and always vulnerability (CWE-326: Inadequate Encryption Strength) affecting Github.com/dexidp/dex libraries in the Go ecosystem. The issue involves dex discarding tlsconfig and always serves deprecated tls 1.0/1.1 and insecure ciphers. Remediation is available by upgrading affected packages to version 2.38.0, 0.0.0-20240125115555-5bbdb4420254.
CVE-2024-23656 at a Glance
Security Impact
CVSS: 7.5
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N).
How to Fix CVE-2024-23656
To remediate this vulnerability, upgrade all affected Github.com/dexidp/dex dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade github.com/dexidp/dex to 2.38.0
Upgrade github.com/dexidp/dex to 0.0.0-20240125115555-5bbdb4420254
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for github.com/dexidp/dex
How to Check if You Are Affected
To determine whether your application is affected by CVE-2024-23656, inspect your project dependencies for Github.com/dexidp/dex:
inspect dependencies for github.com/dexidp/dex
Analyze the terminal output to locate any version of Github.com/dexidp/dex in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 2.38.0), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-326: Inadequate Encryption Strength, where the product stores or transmits sensitive data using an encryption scheme that is theoretically sound, but is not strong enough for the level of protection required. In Github.com/dexidp/dex, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2024-23656 Affected Github.com/dexidp/dex Versions
2 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
github.com/dexidp/dex
|
Go |
≥ 2.37.0
< 2.38.0
All 1 versions
2.37.0
|
2.38.0
|
|
github.com/dexidp/dex
|
Go |
< 0.0.0-20240125115555-5bbdb4420254
|
0.0.0-20240125115555-5bbdb4420254
|
References
Frequently Asked Questions
What is CVE-2024-23656?
Which Github.com/dexidp/dex versions are affected?
What version fixes CVE-2024-23656?
Is github.com/dexidp/dex affected?
What is the CVSS score of CVE-2024-23656?
What CWE is associated with CVE-2024-23656?
How can I check Go dependencies for CVE-2024-23656?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-gr79-9v6v-gc9r",
"modified" : "2025-05-27T15:45:13Z",
"published" : "2024-01-26T01:57:31Z",
"aliases" : [ "CVE-2024-23656" ],
"summary" : "Dex discarding TLSconfig and always serves deprecated TLS 1.0/1.1 and insecure ciphers",
"details" : "### Summary\n\nDex 2.37.0 is serving HTTPS with insecure TLS 1.0 and TLS 1.1.\n\n\n### Details\nWhile working on https://github.com/dexidp/dex/issues/2848 and implementing configurable TLS support, I noticed my changes did not have any effect in TLS config, so I started investigating. \n\nhttps://github.com/dexidp/dex/blob/70d7a2c7c1bb2646b1a540e49616cbc39622fb83/cmd/dex/serve.go#L425 is seemingly setting TLS 1.2 as minimum version, but the whole tlsConfig is ignored after \"TLS cert reloader\" was introduced in https://github.com/dexidp/dex/pull/2964. Configured cipher suites are not respected either, as seen on the output.\n\n### PoC\nBuild Dex, generate certs with `gencert.sh`, modify `config.dev.yaml` to run on https, using generated certs.\n\n```console\nissuer: http://127.0.0.1:5556/dex\n\nstorage:\n type: sqlite3\n config:\n file: dex.db\n\nweb:\n https: 127.0.0.1:5556\n tlsCert: examples/k8s/ssl/cert.pem\n tlsKey: examples/k8s/ssl/key.pem\n\n<rest as default>\n```\n\nRun dex `bin/dex serve config.dev.yaml`.\n\nInstall `sslyze`, easy to use SSL connection analyzer:\n\n```console\npip3 install sslyze\nsslyze 127.0.0.1:5556\n```\n\nIn Dex 2.37.0, TLS 1.0 and TLS 1.1 are enabled in addition to expected TLS 1.2 and TLS 1.3.\n```console\n * TLS 1.0 Cipher Suites:\n Attempted to connect using 80 cipher suites.\n\n The server accepted the following 6 cipher suites:\n TLS_RSA_WITH_AES_256_CBC_SHA 256 \n TLS_RSA_WITH_AES_128_CBC_SHA 128 \n TLS_RSA_WITH_3DES_EDE_CBC_SHA 168 \n TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 256 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 128 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 168 ECDH: prime256v1 (256 bits)\n\n The group of cipher suites supported by the server has the following properties:\n Forward Secrecy OK - Supported\n Legacy RC4 Algorithm OK - Not Supported\n\n\n * TLS 1.1 Cipher Suites:\n Attempted to connect using 80 cipher suites.\n\n The server accepted the following 6 cipher suites:\n TLS_RSA_WITH_AES_256_CBC_SHA 256 \n TLS_RSA_WITH_AES_128_CBC_SHA 128 \n TLS_RSA_WITH_3DES_EDE_CBC_SHA 168 \n TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 256 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 128 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 168 ECDH: prime256v1 (256 bits)\n\n The group of cipher suites supported by the server has the following properties:\n Forward Secrecy OK - Supported\n Legacy RC4 Algorithm OK - Not Supported\n\n\n * TLS 1.2 Cipher Suites:\n Attempted to connect using 156 cipher suites.\n\n The server accepted the following 11 cipher suites:\n TLS_RSA_WITH_AES_256_GCM_SHA384 256 \n TLS_RSA_WITH_AES_256_CBC_SHA 256 \n TLS_RSA_WITH_AES_128_GCM_SHA256 128 \n TLS_RSA_WITH_AES_128_CBC_SHA 128 \n TLS_RSA_WITH_3DES_EDE_CBC_SHA 168 \n TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 256 ECDH: X25519 (253 bits)\n TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 256 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 256 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 128 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 128 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 168 ECDH: prime256v1 (256 bits)\n\n The group of cipher suites supported by the server has the following properties:\n Forward Secrecy OK - Supported\n Legacy RC4 Algorithm OK - Not Supported\n\n\n * TLS 1.3 Cipher Suites:\n Attempted to connect using 5 cipher suites.\n\n The server accepted the following 3 cipher suites:\n TLS_CHACHA20_POLY1305_SHA256 256 ECDH: X25519 (253 bits)\n TLS_AES_256_GCM_SHA384 256 ECDH: X25519 (253 bits)\n TLS_AES_128_GCM_SHA256 128 ECDH: X25519 (253 bits)\n```\n\nIn Dex 2.36.0, TLS 1.0 and TLS 1.1 are disabled as expected.\n```console\n * TLS 1.0 Cipher Suites:\n Attempted to connect using 80 cipher suites; the server rejected all cipher suites.\n\n * TLS 1.1 Cipher Suites:\n Attempted to connect using 80 cipher suites; the server rejected all cipher suites.\n\n * TLS 1.2 Cipher Suites:\n Attempted to connect using 156 cipher suites.\n\n The server accepted the following 5 cipher suites:\n TLS_RSA_WITH_AES_256_GCM_SHA384 256 \n TLS_RSA_WITH_AES_128_GCM_SHA256 128 \n TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 256 ECDH: X25519 (253 bits)\n TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 256 ECDH: prime256v1 (256 bits)\n TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 128 ECDH: prime256v1 (256 bits)\n\n The group of cipher suites supported by the server has the following properties:\n Forward Secrecy OK - Supported\n Legacy RC4 Algorithm OK - Not Supported\n\n\n * TLS 1.3 Cipher Suites:\n Attempted to connect using 5 cipher suites.\n\n The server accepted the following 3 cipher suites:\n TLS_CHACHA20_POLY1305_SHA256 256 ECDH: X25519 (253 bits)\n TLS_AES_256_GCM_SHA384 256 ECDH: X25519 (253 bits)\n```\n\n### Impact\nTLS 1.0 and TLS 1.1 connections can be decrypted by the attacker, and hence decrypt the traffic to Dex.",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
}, {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/dexidp/dex"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "2.37.0"
}, {
"fixed" : "2.38.0"
} ]
} ],
"versions" : [ "2.37.0" ]
}, {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/dexidp/dex"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.0.0-20240125115555-5bbdb4420254"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/dexidp/dex/security/advisories/GHSA-gr79-9v6v-gc9r"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2024-23656"
}, {
"type" : "WEB",
"url" : "https://github.com/dexidp/dex/issues/2848"
}, {
"type" : "WEB",
"url" : "https://github.com/dexidp/dex/pull/2964"
}, {
"type" : "WEB",
"url" : "https://github.com/dexidp/dex/commit/5bbdb4420254ba73b9c4df4775fe7bdacf233b17"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/dexidp/dex"
}, {
"type" : "WEB",
"url" : "https://github.com/dexidp/dex/blob/70d7a2c7c1bb2646b1a540e49616cbc39622fb83/cmd/dex/serve.go#L425"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-326" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2024-01-26T01:57:31Z",
"nvd_published_at" : "2024-01-25T20:15:41Z"
}
}