Spark
Уязвимости
29
Эксплуатируемые
1
Макс. CVSS
9.9
Макс. EPSS
0.92984
Распределение по критичности
Критический
6
Высокий
10
Средний
13
Низкий
0
Затронутые диапазоны версий
1.0.2–1.6.31.3.0–2.2.31.3.0–2.4.02.0.0–3.3.42.1.0–2.1.2< 3.1.3< 3.2.2< 3.4.0< 3.4.4< 3.5.7≤ 2.1.1≤ 2.1.2≤ 2.4.5≤ 3.0.3
Также сопоставлено как (исходные строки): spark,kafka,nifi,hive
Топ уязвимостей
CVE-2023-22946В Apache Spark версий до 3.4.0 приложения, использующие spark-submit, могут указать 'proxy-user' для запуска с ограничением привилегий. Однако приложение может выполнять код с привилегиями пользователя, отправляющего задание, предоставляя вредоносные классы, связанные с конфигурацией, в classpath. Это затрагивает архитектуры, опирающиеся на proxy-user, например, те, которые используют Apache Livy для управления отправленными приложениями.
Обновитесь до Apache Spark 3.4.0 или более поздней версии и убедитесь, что
spark.submit.proxyUser.allowCustomClasspathInClusterMode имеет значение
по умолчанию "false" и не переопределяется отправленными приложениями.
BDU:2024-01784Уязвимость функции spark-submit фреймворка Apache Spark связана с небезопасным управлением привилегиями. Эксплуатация уязвимости может позволить нарушителю, действующему удаленно, выполнить произвольный код
CVE-2020-9480В Apache Spark 2.4.5 и более ранних версиях главный ресурсный менеджер может быть настроен для запроса аутентификации (spark.authenticate) через общий секрет. Однако, когда он включен, специально созданный RPC-вызов главному может успешно запустить ресурсы приложения в кластере Spark даже без общего ключа. Это можно использовать для выполнения команд оболочки на хост-машине. Это не влияет на кластеры Spark, использующие другие ресурсные менеджеры (YARN, Mesos и т. д.).
CVE-2018-17190Во всех версиях Apache Spark его автономный диспетчер ресурсов принимает код для выполнения на хосте "master", который затем запускает этот код на хостах "worker". Сам master по замыслу не выполняет пользовательский код. Однако специально созданный запрос к master может привести к тому, что master также выполнит код. Обратите внимание, что это не влияет на автономные кластеры с включенной аутентификацией. Хотя хост master обычно имеет меньше исходящего доступа к другим ресурсам, чем worker, выполнение кода на master тем не менее является неожиданным.
BDU:2025-09903Уязвимость компонента Analytics Server программной платформы Oracle Business Intelligence Enterprise Edition связана с недостатками процедуры аутентификации. Эксплуатация уязвимости может позволить нарушителю, действующему удалённо, вызвать отказ в обслуживании
BDU:2020-00063Уязвимость фреймворка Apache Spark связана с недостатками процедуры аутентификации. Эксплуатация уязвимости может позволить нарушителю, действующему удалённо, оказать воздействие на конфиденциальность, целостность и доступность защищаемой информации
CVE-2025-54920Эта проблема затрагивает Apache Spark: до 3.5.7 и 4.0.1. Пользователям рекомендуется обновиться до версии 3.5.7 или 4.0.1 и выше, что устраняет проблему.
Резюме
Apache Spark 3.5.4 и более ранние версии содержат уязвимость исполнения кода в Spark History Web UI из-за чрезмерной жемеризации данных журнала событий Джексона. Это позволяет злоумышленнику с доступом к каталогу журналов событий Spark вводить вредоносные полезные нагрузки JSON, которые вызывают дезериаизацию произвольных классов, позволяя выполнять команды на хосте под управлением Spark History Server.
Детали
Уязвимость возникает потому, что Spark History Server использует полиморфную дезериалазизацию Джексона с @JsonTypeInfo.Id.CLASS на объектах SparkListenerEvent, что позволяет злоумышленнику указывать произвольные названия классов в случае JSON. Такое поведение позволяет инстанцировать непреднамеренные классы, такие как org.apache.hive.jdbc.HiveConnection, которые могут выполнять сетевые вызовы или другие вредоносные действия во время дезериализации.
Злоумышленник может использовать это, вводя созданный контент JSON в файлы журнала событий Spark, которые сервер истории затем дезериализует при запуске или при загрузке журналов событий. Например, злоумышленник может заставить сервер истории открыть соединение JDBC на удаленном сервере, управляемом злоумышленником, демонстрируя возможность удаленного ввода команд.
Доказательства концепции:
1. 1. Запустите Spark с включенной регистрацией событий, записав в письменные каталоги (spark-logs).
2. 2. Введите следующий JSON в начале файла журнала событий:
{
"Событие": "орг.apache.hive.jdbc.HiveConnection",
"уи": "jdbc:hive2://<IP>:<PORT>/",
"info": {
"hive.metastore.uris": "бережлость://<IP>:<PORT>"
}
}
3. 3. Запустите сервер истории Spark с журналами, указывающими на измененный каталог.
4. 4. Сервер истории Spark инициирует соединение JDBC с сервером злоумышленника, подтверждая инъекцию.
Влияние
Агитлер с доступом к записи журналов событий Spark может выполнить произвольный код на сервере под управлением Исторического сервера, потенциально компрометируя всю систему.
CVE-2023-32007** НЕ ПОДДЕРЖИВАЕТСЯ ПРИ НАЗНАЧЕНИИ ** В пользовательском интерфейсе Apache Spark есть возможность включить ACL с помощью параметра конфигурации spark.acls.enable. С помощью фильтра аутентификации это проверяет, имеет ли пользователь права доступа для просмотра или изменения приложения. Если включены ACL, код в HttpSecurityFilter может позволить кому-то выполнять подмену, предоставив произвольное имя пользователя. Злоумышленник может получить доступ к функции проверки прав, которая в конечном итоге построит команду оболочки Unix на основе его ввода и выполнит ее. Это приведет к выполнению произвольной команды оболочки от имени пользователя, от имени которого в данный момент выполняется Spark. Эта проблема ранее была раскрыта как CVE-2022-33891, но ошибочно утверждала, что версия 3.1.3 (которая с тех пор больше не поддерживается) не будет затронута.
ПРИМЕЧАНИЕ: Эта уязвимость затрагивает только продукты, которые больше не поддерживаются техническим обслуживанием.
Пользователям рекомендуется обновиться до поддерживаемой версии Apache Spark, такой как версия 3.4.0.
CVE-2022-33891Пользовательский интерфейс Apache Spark предлагает возможность включить ACL через параметр конфигурации spark.acls.enable. С помощью фильтра аутентификации проверяется, имеет ли пользователь права доступа для просмотра или изменения приложения. Если ACL включены, путь кода в HttpSecurityFilter может позволить кому-либо выдавать себя за другого, предоставив произвольное имя пользователя. Злоумышленник может получить доступ к функции проверки разрешений, которая в конечном итоге построит команду оболочки Unix на основе введенных им данных и выполнит ее. Это приведет к произвольному выполнению команды оболочки от имени пользователя, от которого в данный момент работает Spark. Это затрагивает Apache Spark версий 3.0.3 и более ранних, версий 3.1.1–3.1.2 и версий 3.2.0–3.2.1.
CVE-2017-12612В Apache Spark 1.6.0 - 2.1.1 API запуска выполняет небезопасную десериализацию данных, полученных его сокетом. Это делает приложения, запускаемые программно с помощью API запуска, потенциально уязвимыми для произвольного выполнения кода злоумышленником, имеющим доступ к любой учетной записи пользователя на локальной машине. Это не влияет на приложения, запускаемые с помощью spark-submit или spark-shell. Злоумышленник сможет выполнять код от имени пользователя, запустившего приложение Spark. Пользователям рекомендуется обновиться до версии 2.2.0 или более поздней.
CVE-2021-38296Apache Spark поддерживает сквозное шифрование RPC-соединений через "spark.authenticate" и "spark.network.crypto.enabled". В версиях 3.1.2 и более ранних используется специальный протокол взаимной аутентификации, который позволяет полностью восстановить ключ шифрования. После начальной интерактивной атаки это позволит кому-либо расшифровать трафик в виде обычного текста в автономном режиме. Обратите внимание, что это не влияет на механизмы безопасности, контролируемые "spark.authenticate.enableSaslEncryption", "spark.io.encryption.enabled", "spark.ssl", "spark.ui.strictTransportSecurity". Обновитесь до Apache Spark 3.1.3 или более поздней версии.
CVE-2019-20445HttpObjectDecoder.java в Netty до версии 4.1.44 позволяет сопровождать заголовок Content-Length вторым заголовком Content-Length или заголовком Transfer-Encoding.
CVE-2019-10099До Spark 2.3.3 в определенных ситуациях Spark записывал бы данные пользователя на локальный диск в незашифрованном виде, даже если spark.io.encryption.enabled=true. Это включает в себя кэшированные блоки, которые извлекаются на диск (контролируется spark.maxRemoteBlockSizeFetchToMem); в SparkR с использованием parallelize; в Pyspark с использованием broadcast и parallelize; и использование python udfs.
CVE-2018-11804Сборка Spark на основе Apache Maven включает в себя удобный скрипт 'build/mvn', который загружает и запускает zinc-сервер для ускорения компиляции. Он был включен в релизные ветки, начиная с 1.3.x, вплоть до master. Этот сервер будет принимать соединения от внешних хостов по умолчанию. Специально созданный запрос к zinc-серверу может привести к раскрытию информации в файлах, доступных для чтения учетной записью разработчика, запускающей сборку. Обратите внимание, что эта проблема не затрагивает конечных пользователей Spark, а только разработчиков, собирающих Spark из исходного кода.
BDU:2022-04514Уязвимость интерфейса фреймворка Apache Spark связана с недостаточной проверкой аргументов, передаваемых в команду. Эксплуатация уязвимости может позволить нарушителю, действующему удалённо, выполнить произвольную команду
CVE-2018-11760При использовании PySpark другому локальному пользователю возможно подключиться к приложению Spark и олицетворять пользователя, запускающего приложение Spark. Это затрагивает версии 1.x, 2.0.x, 2.1.x, 2.2.0 - 2.2.2 и 2.3.0 - 2.3.1.
CVE-2025-55039Эта проблема затрагивает версии Apache Spark до 3.4.4, 3.5.2 и 4.0.0.
Версии Apache Spark до 4.0.0, 3.5.2 и 3.4.4 используют небезопасный шифр шифрования сети по умолчанию для связи RPC между узлами.
Когда spark.network.crypto.enabled настроен на true (по умолчанию он установлен на ложный), но spark.network.crypto.cipher явно не настроен, Spark по умолчанию по умолчанию в AES в режиме CTR (AES/CTR/NoPadding), который обеспечивает шифрование без аутентификации.
Эта уязвимость позволяет злоумышленнику изменять зашифрованный трафик RPC незамеченным путем переворачивания битов в виде шифротекста, потенциально компрометируя сообщения с сердцебиением или данными приложений и влияя на целостность рабочих процессов Spark.
Чтобы смягчить эту проблему, пользователи должны либо настроить spark.network.crypto.cipher на AES/GCM/NoPadding для включения аутентифицированного шифрования или
включить SSL шифрование, установив spark.ssl.enabled в true, что обеспечивает более надежную безопасность на транспорте.
CVE-2018-11770Начиная с версии 1.3.0, автономный мастер Apache Spark предоставляет REST API для отправки заданий, в дополнение к механизму отправки, используемому spark-submit. В автономном режиме свойство конфигурации spark.authenticate.secret устанавливает общий секрет для аутентификации запросов на отправку заданий через spark-submit. Однако REST API не использует этот или какой-либо другой механизм аутентификации, и это недостаточно документировано. В этом случае пользователь сможет запустить программу драйвера без аутентификации, но не сможет запускать исполнители, используя REST API. Этот REST API также используется Mesos, когда настроен для работы в режиме кластера (т.е. при одновременном запуске MesosClusterDispatcher) для отправки заданий. Будущие версии Spark улучшат документацию по этим моментам и запретят установку spark.authenticate.secret при запуске REST API, чтобы это было ясно. Будущие версии также отключат REST API по умолчанию в автономном мастере, изменив значение по умолчанию spark.master.rest.enabled на false.
BDU:2026-04646Уязвимость функции spark-submit фреймворка Apache Spark связана с недостатками механизма десериализации. Эксплуатация уязвимости может позволить нарушителю, действующему удаленно, выполнять произвольные команды
CVE-2017-7678В Apache Spark до версии 2.2.0 злоумышленник может воспользоваться доверием пользователя к серверу, чтобы обманом заставить его перейти по ссылке, указывающей на общий кластер Spark, и отправить данные, включая MHTML, в Spark master или history server. Эти данные, которые могут содержать скрипт, будут отражены обратно пользователю и могут быть оценены и выполнены клиентами на базе MS Windows. Это не атака на сам Spark, а на пользователя, который может непреднамеренно выполнить скрипт при просмотре элементов веб-интерфейса Spark.
CVE-2024-23945Подписание куки является функцией безопасности приложения, которая добавляет цифровую подпись к данным куки для проверки их подлинности и целостности. Подпись помогает предотвратить модификацию значения куки злонамеренными лицами, что может привести к уязвимостям в безопасности и эксплуатации. Компонент сервиса Apache Hive случайно раскрывает подписанную куки конечному пользователю, когда происходит несоответствие между текущей и ожидаемой подписью куки. Раскрытие правильной подписи куки может привести к дальнейшей эксплуатации.
Уязвимая логика CookieSigner была введена в Apache Hive по HIVE-9710 (1.2.0) и в Apache Spark по SPARK-14987 (2.0.0). Затронутыми компонентами являются:
* org.apache.hive:hive-service
* org.apache.spark:spark-hive-thriftserver_2.11
* org.apache.spark:spark-hive-thriftserver_2.12
CVE-2019-10172Обнаружена уязвимость в библиотеках org.codehaus.jackson:jackson-mapper-asl:1.9.x. Уязвимости XML external entity, аналогичные CVE-2016-3720, также затрагивают библиотеки codehaus jackson-mapper-asl, но в других классах.
BDU:2025-00249Уязвимость класса CookieSigner фреймворка Apache Spark и СУБД Apache Hive связана с раскрытием цифровой подписи к данным cookie в результате некорректного механизма формирования отчетов об ошибках. Эксплуатация уязвимости может позволить нарушителю, действующему удалённо, получить несанкционированный доступ к защищаемой информации
BDU:2020-00135Уязвимость интерфейса PySpark фреймворка Apache Spark связана с недостатками разграничения доступа. Эксплуатация уязвимости может позволить нарушителю повысить свои привилегии
CVE-2022-31777Уязвимость хранимого межсайтового скриптинга (XSS) в Apache Spark 3.2.1 и более ранних версиях, а также в 3.3.0 позволяет удаленным злоумышленникам выполнять произвольный код JavaScript в веб-браузере пользователя, включая вредоносную полезную нагрузку в журналы, которые будут возвращены в журналах, отображаемых в пользовательском интерфейсе.