The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимость в библиотеке ruby-saml, приводящая к обходу аутентификации в GitLab

13.03.2025 15:00

Опубликованы корректирующие обновления платформы для организации совместной разработки GitLab - 17.9.2, 17.8.5 и 17.7.7, в которых устранена уязвимость (CVE-2025-25291, CVE-2025-25292), позволяющая обойти аутентификацию на базе SAML (Security Assertion Markup Language). Уязвимость присутствует в Ruby-библиотеке ruby-saml, реализующей функции для SAML-авторизации. Кроме GitLab уязвимость затрагивает и другие проекты, использующие данную библиотеку. Проблема устранена в обновлениях ruby-saml 1.18.0 и 1.12.4.

Уязвимость вызвана различиями в разборе XML-документов парсерами ReXML и Nokogiri, в результате чего при обработке одного и того же XML-документа генерировались документы, различные по своей структуре. Проблема в том, что REXML и Nokogiri по-разному обрабатывают в XML-документе цифровые подписи, что можно использовать для создания условий, при которых при проверке будет использована одна подпись, а при аттестации пользователя другая. Данная возможность позволяет атакующему воспользоваться методом атаки XSW (XML Signature Wrapping) для подделки ответа SAML для произвольного содержимого, имея доступ к любому подписанному SAML-документу.

Проблема выявлена в результате инициативы компании GitHub, которая рассматривала возможность перевода GitHub на использование данной библиотеки и в целях проверки безопасности организовала конкурс (Bug bounty) по взлому тестового окружения, в котором для SAML-аутентификации использовалась библиотека ruby-saml. Один из исследователей безопасности обратил внимание на наличие уязвимости. В процессе разбора проблемы сотрудник GitHub выявил ещё один способ атаки, основанный на том же принципе.

В дальнейшем возможность совершения атаки была подтверждена для GitLab. В контексте GitLab уязвимость позволяет атакующему, имеющему доступ к любому корректно подписанному SAML-документу, пройти аутентификацию под другим пользователем, т.е. для того чтобы обойти аутентификацию и войти под другим пользователем, атакующий уже должен иметь доступ к одной из рабочих учётных записей.

  1. Главная ссылка к новости (https://about.gitlab.com/relea...)
  2. OpenNews: Уязвимость в Ruby-SAML, позволяющая обойти аутентификацию в GitLab
  3. OpenNews: Критическая уязвимость в GitLab
  4. OpenNews: Уязвимость в GitHub Enterprise Server, дающая права администратора без аутентификации
  5. OpenNews: Обход верификации в библиотеке xml-crypto, насчитывающей миллион загрузок в неделю
  6. OpenNews: Уязвимость в GitLab, позволяющая захватить аккаунты, авторизированные через OAuth, LDAP и SAML
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62876-saml
Ключевые слова: saml, gitlab
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Анониматор (?), 15:21, 13/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    GitLab - это яркий демонстратор того что не надо писать сложные вещи на Ruby. Жрёт память, еле шевелится, завышенные системные требования.
     
     
  • 2.7, Ivan_83 (ok), 15:47, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, это просто ад для меинтейнера и сисадмина.
    Я как то пробовал ставить из портов это поделие на фре, так оно поставило более 600 портов и в итоге так и не заработало :)

    У меня на десктопе стоит 1к портов, но минимально как раз тоже примерно 600 надо для ДЕ с комфортом.

     
     
  • 3.10, Аноним (10), 16:21, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну тут либо фря не подходит как платформа для работы сложного софта, либо админ неопытный. На линуксе в кубернетесе опыт эксплуатации с ~300 девелоперов могу оценить как приемлимый. Каких-то особых сложностей (и уж тем более чтобы не заработало) не вспоминается, даже бэкапы восстанавливать не приходилось.
     
     
  • 4.12, 12yoexpert (ok), 16:24, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    зачем для веб-морды гита кластер, если у тебя всего 300 клиентов? это ненормально
     
     
  • 5.18, Аноним (10), 16:47, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну есть кластер, почему бы не использовать его и для гит-морды? Там же не только Гитлаб крутится.
     
     
  • 6.47, penetrator (?), 21:18, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    да какой это кластер, рантайм помойка, повторяющая функции systemd, дополнительный слой и тормоза

    в случае реального scale out - внешний балансировщик между нодами, смех

    оркестратор шареного хостинга ))))

     
  • 5.29, User (??), 17:41, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Оу. Великий "организатор совещаний через cron" (тм) и в gitlab дальше оглавления(тм) не заглядывал? Ну... Ожидаемо, чоужтам.
     
  • 5.46, йос (?), 21:14, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что этот кластер в первую очередь обеспечивает удобные и простые способы деплоя.
    Альтернативы flux+helm это либо отписываться с ног до головы своим ансиблом и поддерживать его или как дурачок настраивать все ручками и бекапить стейт.
     
     
  • 6.48, penetrator (?), 21:21, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    кластер в первую очередь это обеспечение scale out и HA,

    а то что у тебя зверинец для деплоймента, то это не причина иметь "кластер" )))

     
  • 4.17, Ivan_83 (ok), 16:38, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не, кубертинес не считается, это костыль где фактически эмулируется мамкин компуктер на котором разраб пилил свою поделку.
     
  • 3.28, User (??), 17:38, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, это так то камень в огород фри, а не ruby с гитлабом - если вместо абсолютно беспроблемного деплоя хоть контейнером, хоть пакетом приходится вот это всё на лыжах под водой гамакать - чот в консерватории не то.
     
  • 3.33, нах. (?), 18:09, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    дай угадаю - из тех 600 - 590 - это лефтпады на самом же ruby. Боюсь что это проблема организации портов во фре.

    И в итоге не заработало потому что один из 600 оказался уже не той версии с которой тестировали сборку.

     
     
  • 4.37, Аноним (37), 18:23, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > дай угадаю - из тех 600 - 590 - это лефтпады на самом же ruby.

    Не, там полно и каноничных лефтпадов

     
  • 3.45, йос (?), 21:10, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема ли это гитлаба или тех кто мейнтейнит ваши бзди? 🤔
     
  • 2.30, Профессор Кукушкин (?), 17:46, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, это пример как не надо писать сложные проекты на любом языке. С теми практиками, которые используют в Гитлабе, он будет одинаково отвратительно работать на любом языке.
     

  • 1.11, Аноним (11), 16:22, 13/03/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     
     
  • 2.13, 12yoexpert (ok), 16:26, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 3.21, Аноним (10), 16:59, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 3.22, нах. (?), 17:03, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 4.26, Аноним (10), 17:24, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 5.34, Аноним (34), 18:09, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 6.39, нах. (?), 18:28, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.14, Аноним (14), 16:27, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +3 +/
     
     
  • 3.24, Аноним (10), 17:08, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 4.31, User (??), 17:46, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.20, нах. (?), 16:57, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.25, Аноним (10), 17:14, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.35, нах. (?), 18:12, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.36, blkkid (?), 18:18, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 4.38, нах. (?), 18:23, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.49, myster (ok), 22:25, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.27, Аноним (27), 17:27, 13/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Автор! Обязательно пиши в какой версии уязвимость появилась.
     
  • 1.40, Аноним (40), 19:28, 13/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Уязвимость вызвана различиями в разборе XML-документов парсерами ReXML и Nokogiri,

    Как вы яхту назовете... тоже мне, нога с гирей. И бегает соответственно.

     
  • 1.53, Аноним (-), 23:56, 13/03/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру