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 обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Анониматор (?), 15:21, 13/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну есть кластер, почему бы не использовать его и для гит-морды? Там же не только Гитлаб крутится.
     
  • 5.29, User (??), 17:41, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оу. Великий "организатор совещаний через cron" (тм) и в gitlab дальше оглавления(тм) не заглядывал? Ну... Ожидаемо, чоужтам.
     
  • 4.17, Ivan_83 (ok), 16:38, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 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.

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

     
  • 2.15, Аноним (15), 16:32, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ждем аналог Giltab'a на Rust! Или хотя бы на Go! А, на Go уже есть? Несколько? А чё тогда на Rust никто не напишет?
    Ей! Пасаны! Харе фигнёй страдать! Гоу, не, т.е. Ран писать Giltab на Rust!
     
     
  • 3.16, Ivan_83 (ok), 16:37, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На go мне вполне нравится как сделано, для админа нуль проблем. Для меинтейнера тоже примерно так же.
    На пхп было бы тоже не плохо, судя по другим проектам которые я меинтейнил/ставил.
     
  • 3.19, Анониматор (?), 16:52, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а чем гошка плоха для этой задачи?
     
     
  • 4.23, нах. (?), 17:03, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    не по пацански!
     
  • 2.30, Профессор Кукушкин (?), 17:46, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, это пример как не надо писать сложные проекты на любом языке. С теми практиками, которые используют в Гитлабе, он будет одинаково отвратительно работать на любом языке.
     

  • 1.5, Аноним (5), 15:38, 13/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ой как страшно, даже мемори-сейф ЯП не помог!
     

  • 1.11, Аноним (11), 16:22, 13/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Кто нибудь вообще воспринимает этот гитлаб в серьез? Это же васяноподелие жуткое, и ведь им в проде пользуются(знаю одну корпу, у которой в сеть светит страничка авторизации их гитлаба, со всеми репами и прочим).
    Как по мне, оно хайпануло только из за нетакусиков, во первых, потому что не гитхаб(хотя чем плох гитхаб никто сказать не может), а во вторых, потому что оно родом из страны, поддерживать которую сейчас модно.
     
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что дурачок тут только ты, и даже не прикидываешься.

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

    Но вот складывать исходники и всю околопроектную деятельность в чужие облачка, действительно готовы оказываются не все. А кому-то и законодательство прямо запрещает.

    (github enterprise то такоэ... во-первых, подписка в любой момент может подорожать или вовсе закончиться, во-вторых если ты его поставишь, то с удивлением узнаешь что даже серверная изолированная версия мнэ...не совсем изолированная. Про цену уж не будем - "call!")

     
     
  • 4.26, Аноним (10), 17:24, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всё там в порядке и с изоляцией, и с ценником, и даже с поддержкой. Госдеп США устраивает, авось и твоему подвалу сгодится. Проблемы с законодательством (кстати, ссылки на соответствующие нормативные документы не покажешь?), ценами, и внезапными отключениями  свойственны только слаборазвитым странам, всячески стремящимся покинуть лоно цивилизации. И эти проблемы хостинг кода решить не может, и не должен.
     
     
  • 5.32, anoni (?), 17:55, 13/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 5.34, Аноним (34), 18:09, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Госдеп США устраивает

    Потому что они в одной юрисдикции.
    > Проблемы с законодательством (кстати, ссылки на соответствующие нормативные документы не покажешь?), ценами, и внезапными отключениями  свойственны только слаборазвитым странам

    Это ЕС слаборазвитые?

     
     
  • 6.39, нах. (?), 18:28, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> Госдеп США устраивает
    > Потому что они в одной юрисдикции.

    В той юрисдикции надысь уволили половину госдепа. Уцелевшим не до выбора нормальной платформы, им бы до пенсии дотянуть.

    > Это ЕС слаборазвитые?

    Конечно.
    Вон из недавних разгромных новостей как они америку импортозаместили:

    "Берлин в январе - в одном из последних пакетов - передал Украине 60 ракет к IRIS-T".
    Понимаешь - 60 ШТУК. В МЕСЯЦ. Крупнейшая экономика гейропы.

    Какого лешего мы до сих пор баварское не пьем, и все бесплатно и в любом количестве, в счет репараций - я решительно не понимаю.

     
  • 2.14, Аноним (15), 16:27, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чем плоха арендованная квартира, только дураки живут в собственном жилье!
    А все рассказы про то что владелец арендованной квартиры может тебя выгнать в любой момент, полна чушь! Как он меня выгонит, я же ему за это деньги плачу!
     
     
  • 3.24, Аноним (10), 17:08, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А без котёнка с дверцей сможешь объяснить что не так? Гит — система распределённая, можешь свои нетленки на все известные человечеству хостинги кода залить, и пусть потом опеннет спорит где оригинал, а где копия. Может для меня оригинал только на моём лаптопе, всё остальное — резервные копии. Или скажешь, что резервное копирование не нужно?
     
     
  • 4.31, User (??), 17:46, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да можешь и не заливать, чоужтам. С такими предложениями она все равно нах (прости, пох!) никому не нужна.
     
  • 2.20, нах. (?), 16:57, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Кто нибудь вообще воспринимает этот гитлаб в серьез?

    Все кто не собирается хранить свои исходники в _чужом_ облачке.

    > Это же васяноподелие жуткое

    твой обожаемый гитляп - такое же точно васяноподелие причем на том же самом нескучненьком язычке.
    Просто тебе не дадут исходник забесплатно скачать без смс, чтоб ты пальцем не тыкал в ляпы и не глумился, вот и вся разница.

    К сожалению, других средств коллективной работы над проектами у меня для вас, _уже_, нет.

     
     
  • 3.25, Аноним (10), 17:14, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > К сожалению, других средств коллективной работы над проектами у меня для вас, _уже_, нет.

    Да их и не было особо. Первый _продукт_, которым было удобно пользоваться — это как раз ГитХаб, не диво что его Майкрософт купил. Остальные в то время всё ещё пытались вывести более быструю лошадь^W^W^W^Wсделать более удобный sourceforge.

     
     
  • 4.35, нах. (?), 18:12, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как мы жили до прихода священного платинового спонсора - ума не приложу!

    Купил он его потому что продавалось. А Гренландия - не продается.

     
  • 3.36, blkkid (?), 18:18, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > К сожалению, других средств коллективной работы над проектами у меня для вас, _уже_, нет.

    st.ht? gitea/forgejo? ну если хочется у кого-то еще, есть codeberg для попенсорса и какие-нибудь мелкие хостинги типа сберовского gitflic

     
     
  • 4.38, нах. (?), 18:23, 13/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > st.ht?

    можно я не буду это комментировать даже, вместе с сберфриком?

    > gitea/forgejo?

    это корявый веб-интерфейс для авторизации в гите, не умеющем из коробки даже этого. Причем тут коллективная работа над проектами? Она вообще не требует обязательной поддержки vcs.

    (собственно, в одном поддерживаемом проекте - не смотря на гитлаб - вполне себе используется внешнее решение. Потому что разработчики немодные и новые наборы стикеров им не зашли.)

     

  • 1.27, Аноним (27), 17:27, 13/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автор! Обязательно пиши в какой версии уязвимость появилась.
     

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



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

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