{"id":"CVE-2025-27817","published":"2025-06-10T07:55:14Z","modified":"2025-06-10T15:15:40Z","title":"Apache Kafka Client: Arbitrary file read and SSRF vulnerability","vendor":"Apache Software Foundation","product":"Apache Kafka Client","tier":"core","eol":null,"affectedVersions":[{"vendor":"Apache Software Foundation","product":"Apache Kafka Client","versions":[">= 3.1.0, <= 3.9.0"]}],"description":{"text":"A possible arbitrary file read and SSRF vulnerability has been identified in Apache Kafka Client. Apache Kafka Clients accept configuration data for setting the SASL/OAUTHBEARER connection with the brokers, including \"sasl.oauthbearer.token.endpoint.url\" and \"sasl.oauthbearer.jwks.endpoint.url\". Apache Kafka allows clients to read an arbitrary file and return the content in the error log, or sending requests to an unintended location. In applications where Apache Kafka Clients configurations can be specified by an untrusted party, attackers may use the \"sasl.oauthbearer.token.endpoint.url\" and \"sasl.oauthbearer.jwks.endpoint.url\" configuratin to read arbitrary contents of the disk and environment variables or make requests to an unintended location. In particular, this flaw may be used in Apache Kafka Connect to escalate from REST API access to filesystem/environment/URL access, which may be undesirable in certain environments, including SaaS products. \n\nSince Apache Kafka 3.9.1/4.0.0, we have added a system property (\"-Dorg.apache.kafka.sasl.oauthbearer.allowed.urls\") to set the allowed urls in SASL JAAS configuration. In 3.9.1, it accepts all urls by default for backward compatibility. However in 4.0.0 and newer, the default value is empty list and users have to set the allowed urls explicitly.","provenance":"source","from":"CVE.org"},"summary":{"text":"A flaw in the Apache Kafka Client component, where the SASL/OAUTHBEARER settings \"sasl.oauthbearer.token.endpoint.url\" and \"sasl.oauthbearer.jwks.endpoint.url\" can be abused to make the client read arbitrary local files and return their contents in error logs, or send requests to unintended locations. An attacker who can supply client configuration data, such as an untrusted party in an application that lets configurations be specified externally (for example, via the Kafka Connect REST API), can exploit this over the network without authentication or user interaction.","provenance":"ai","model":"claude-haiku-5-5","generatedAt":"2026-10-30T13:35:48Z"},"cvss":{"score":7.5,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","provenance":"source","from":"CISA ADP Vulnrichment"},"epss":{"score":0.68776,"percentile":0.99345,"date":"2026-10-31","provenance":"source"},"kev":null,"vulncheckKev":{"dateAdded":"2026-04-08","exploitedFirstSeen":"2026-04-08","ransomware":false,"evidence":[{"url":"https://tracker.crowdsec.net/cves/CVE-2025-27817","date":"2026-04-08"}],"evidenceTotal":1,"provenance":"source"},"exploited":true,"otx":null,"cwes":[{"id":"CWE-918","name":"Server-Side Request Forgery"}],"references":[{"url":"https://kafka.apache.org/cve-list","tags":["vendor-advisory"]},{"url":"http://www.openwall.com/lists/oss-security/2025/06/09/1","tags":[]}],"techniques":[],"reports":[],"affected":[{"ecosystem":"Maven","package":"org.apache.kafka:kafka-clients","vulnerableRanges":[">=3.1.0, <3.9.1"],"patched":["3.9.1"],"from":["GHSA-vgq5-3255-v292"],"provenance":"source"}],"advisories":[{"id":"GHSA-vgq5-3255-v292","url":"https://github.com/advisories/GHSA-vgq5-3255-v292","severity":"MODERATE","ecosystem":"Maven","package":"org.apache.kafka:kafka-clients","vulnerableRanges":[">=3.1.0, <3.9.1"],"patched":["3.9.1"],"provenance":"source","from":"GHSA"}],"euvd":{"id":"EUVD-2025-17640","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-17640","exploited":false,"exploitedSince":null,"provenance":"source"},"exploits":[],"exploitSources":{"pocGithub":{"count":2,"skipped":0,"earliest":"2025-07-04","earliestUrl":"https://github.com/iSee857/CVE-2025-27817","repos":[{"name":"iSee857/CVE-2025-27817","url":"https://github.com/iSee857/CVE-2025-27817","stars":5,"created":"2025-07-04"},{"name":"oriolrius/kafka-keycloak-oauth","url":"https://github.com/oriolrius/kafka-keycloak-oauth","stars":5,"created":"2025-10-13"}]},"nuclei":[{"id":"CVE-2025-27817","name":"Apache Kafka Client - Arbitrary File Read","severity":"high","path":"http/cves/2025/CVE-2025-27817.yaml","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2025/CVE-2025-27817.yaml"}],"first":{"date":"2025-07-04","source":"PoC-in-GitHub","url":"https://github.com/iSee857/CVE-2025-27817"},"provenance":"source"},"exploitRefs":[],"flow":[],"timeline":[{"date":"2025-06-10","kind":"published","label":"Published (CVE.org)","url":"https://www.cve.org/CVERecord?id=CVE-2025-27817","provenance":"source"},{"date":"2025-07-04","kind":"exploit-public","label":"First public exploit: PoC-in-GitHub","url":"https://github.com/iSee857/CVE-2025-27817","provenance":"source"},{"date":"2026-04-08","kind":"exploited-reported","label":"Exploitation first reported (VulnCheck KEV evidence)","url":"https://tracker.crowdsec.net/cves/CVE-2025-27817","provenance":"source"}],"speed":{"daysToPublicExploit":24,"firstExploitFrom":"PoC-in-GitHub","daysToKev":null},"priority":{"score":70.1,"factors":[{"name":"In a KEV catalog","points":35.0,"detail":"listed in VulnCheck KEV"},{"name":"Recent KEV listing","points":5.0,"detail":"added 207 days ago"},{"name":"Known ransomware use","points":0.0,"detail":"not known"},{"name":"EPSS percentile","points":19.87,"detail":"percentile 0.9935"},{"name":"Named in threat reports","points":0.0,"detail":"0 reports"},{"name":"Public exploit code","points":5.0,"detail":"2 PoC-in-GitHub repos; 1 nuclei template"},{"name":"Mentioned in OTX pulses","points":0.0,"detail":"0 pulses"},{"name":"CVSS severity","points":5.25,"detail":"base score 7.5"},{"name":"End-of-life product","points":0.0,"detail":"supported or unknown"}]},"lineage":{"packageHistory":[{"cve":"CVE-2017-12610","published":"2018-07-26","fixed":"0.11.0.2","kev":false},{"cve":"CVE-2021-38153","published":"2021-09-22","fixed":"2.8.1","kev":false},{"cve":"CVE-2024-31141","published":"2024-11-19","fixed":"3.7.1","kev":false,"link":{"from":"CVE-2024-31141","to":"CVE-2025-27817","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Maven:org.apache.kafka:kafka-clients","fromFixed":"3.7.1","toFixed":"3.9.1","daysApart":203}]}},{"cve":"CVE-2025-27817","published":"2025-06-10","fixed":"3.9.1","kev":false},{"cve":"CVE-2026-33558","published":"2026-04-20","fixed":"4.0.1","kev":false,"link":{"from":"CVE-2025-27817","to":"CVE-2026-33558","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Maven:org.apache.kafka:kafka-clients","fromFixed":"3.9.1","toFixed":"3.9.2","daysApart":314}]}},{"cve":"CVE-2026-33557","published":"2026-04-20","fixed":"4.1.2","kev":false},{"cve":"CVE-2026-35554","published":"2026-04-07","fixed":"4.1.2","kev":false,"link":{"from":"CVE-2025-27817","to":"CVE-2026-35554","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Maven:org.apache.kafka:kafka-clients","fromFixed":"3.9.1","toFixed":"3.9.2","daysApart":301}]}}],"package":"Maven:org.apache.kafka:kafka-clients"}}