Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
spark-proxyuser-classpath — Apache Spark 4.2.0 — высокий — удалённый — остаточные привилегии — proxy-user defaultExtraClassPath | Kitploit
Инструменты/GitHubGitHub/abraxas/spark-proxyuser-classpath
Повышение привилегийБезопасность контейнеровАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеБезопасность облачных средСтатьи и ИсследованияRed Teaming

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHub
abraxas/spark-proxyuser-classpath

spark-proxyuser-classpath

Apache Spark 4.2.0 — высокий — удалённый — остаточные привилегии — proxy-user defaultExtraClassPath

Репозиторий
1 день назадЕщё не проверено

Abraxas Labs - spark-proxyuser-classpath

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  spark-proxyuser-classpath

spark-proxyuser-classpath

Класс: Остаточная привилегия (остаток от CVE-2023-22946 / SPARK-41958) Достижимость: Удалённая

Apache Spark 4.2.0 (32f72996) - Apache Software Foundation

CVE-2023-22946 / SPARK-41958 по-прежнему устанавливает spark.submit.proxyUser.allowCustomClasspathInClusterMode в false по умолчанию и по-прежнему выполняет childClasspath.clear() при отправке в кластер с --proxy-user. Это публичный путь YARN --jars. Затем в Spark 4.0 был добавлен spark.driver.defaultExtraClassPath. Лаунчер всегда добавляет этот ключ в начало -cp JVM spark-submit, в том числе в режиме кластера. SPARK-41958 его никогда не видит.

Арендатор в стиле Livy по-прежнему может загрузить размещённый jar внутри JVM spark-submit шлюза. Hadoop UserGroupInformation.doAs этого не меняет — Unix UID остаётся прежним.

IDCVE пока нет
КлассОстаточная привилегия (остаток от CVE-2023-22946 / SPARK-41958)
ДостижимостьУдалённая (отправка задания в стиле Livy с --proxy-user через шлюз)
CWECWE-269, CWE-427
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ПродуктApache Spark
ЗатронутоApache Spark 4.2.0 (32f7299601108917fb01920a54e084595b7b3bf8)
Аутентификацияаутентифицированный арендатор шлюза в стиле Livy / Kyuubi / Oozie, который передаёт --conf и размещённые --jars в spark-submit --proxy-user ... --deploy-mode cluster
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18950. Файл-свидетель. Гаджет из проходов по указанному лаунчеру / submit.

Что может сделать атакующий

Иметь аккаунт арендатора на многопользовательском шлюзе Spark (Livy, Kyuubi, Oozie и им подобные), который запускает spark-submit --proxy-user <tenant> --deploy-mode cluster под UID суперпользователя. Разместить jar, который JVM шлюза может открыть. Отправить --conf spark.driver.defaultExtraClassPath=<staged jar>. Шлюз SPARK-41958 может оставаться в значении false. Сформированный spark-submit -cp всё равно начинается с этого jar. Классы из него загружаются под Unix UID шлюза.

--conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true — это второй проход: .internal() существует только в документации, --conf всё равно записывает ключ, и тогда YARN-кластер сохраняет --jars в childClasspath. Публичный CVE-2023-22946 остаётся путём YARN по умолчанию через --jars, который уже покрывается clear(). Этот остаток — незащищённый defaultExtraClassPath.

Hadoop-имперсонация после чистой отправки по-прежнему действует как прокси-пользователь для YARN AM / драйвера k8s. Этот остаток затрагивает только JVM шлюза.

МетодТочка сбросаРазведкаЦелостностьДоступностьПроисхождение
Отправка в стиле Livy --proxy-user + yarn/k8s/standalone cluster + --conf spark.driver.defaultExtraClassPath=<staged local jar>, флаг SPARK-41958 оставлен falseSparkSubmitCommandBuilder.buildSparkSubmitCommand SparkSubmitCommandBuilder.java:317-327 первый элемент -cpПеречисление/чтение файлов, доступных UID шлюза (каталог keytab, spark-defaults, локальный staging). Hadoop-идентичность последующих RPC остаётся прокси-пользователем.Загрузка классов арендатора внутри JVM spark-submit. Unix UID остаётся UID шлюза (Hadoop proxy superuser). Лаборатория: defaultExtraClassPath-on-cp=yes childClasspath-cleared=yes lab.WitnessMain записал SPARK-PROXYUSER-CLASSPATH-WITNESS. Выведено из публичного класса CVE: наложение ресурсов Hadoop Configuration / поиск реализации FileSystem под этим UID.Падение JVM submit, если наложение выбрасывает исключение. Не класс.Доказанная в лаборатории загрузка + запись свидетеля через сформированный -cp. Наложение Hadoop выведено. Проброс --conf в Livy/Kyuubi выведен (эти деревья не соответствуют данному пину).
Та же отправка с --conf spark.submit.proxyUser.allowCustomClasspathInClusterMode=true плюс --jars / первичный ресурсSparkSubmit.prepareSubmitEnvironment SparkSubmit.scala:333-336,738-743,917-924, затем runMain :980-987Та же разведка, что и в проходе A, но на дочернем URLClassLoader, а не на системном загрузчике.Сохранение --jars в childClasspath, чтобы выполнялся addJarToClasspath. Лаборатория: conf-flag-keeps-jars=yes.То же.Доказанное в лаборатории сохранение childClasspath. Это не повторная регистрация публичного пути YARN --jars, который покрывается clear(), когда флаг остаётся false.

Доказано в лаборатории vs выведено: сформированный -cp содержит defaultExtraClassPath в режиме кластера; childClasspath.clear() всё ещё выполняется при флаге по умолчанию; spark.driver.extraClassPath опускается в режиме кластера; --jars при флаге false очищается; класс-свидетель на этом -cp записывает оракул. Выполнение класса конфигурации Hadoop — это механизм публичного CVE-2023-22946, здесь он не воспроизводился. Проброс --conf в Livy/Kyuubi — это архитектура, документированная этими проектами.

Смежные закрытые (не преувеличивать)

Скачать инструмент