The OpenNET Project / Index page

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

Инциденты с безопасностью в репозиториях PyPI и crates.io

16.04.2025 14:57

Разработчики репозитория Python-пакетов PyPI (Python Package Index) сообщили о выявлении проблемы с безопасностью в реализации функции "Organization Team", позволяющей сформировать команду из нескольких разработчиков, совместно работающих над проектом в PyPI. Суть выявленных проблем в том, что привилегии, делегированные пользователю как участнику "Organization Team", сохранялись после удаления пользователя из состава организации. Уязвимость в PyPI была устранена спустя 2 часа после сообщения о наличии проблемы. Проведённый аудит не выявил несанкционированных действий, связанных с использованием не отозванных прав доступа.

О связанном с безопасностью инциденте также сообщили разработчики репозитория crates.io, через который распространяются пакеты на языке Rust. В инфраструктуре crates.io при возникновении ошибок на стороне бэкенда информация о обрабатываемых в момент возникновения проблемы запросах отправляется в сервис мониторинга Sentry. Проблема связана с тем, что среди отправляемых данных присутствовало поле с содержимым Cookie "cargo_session", в котором находился сессионный ключ, идентифицирующий пользователя. Посторонний, получивший данный ключ, мог осуществлять любые действия в незавершённом сеансе пользователя.

Отмечается, что доступ к серверу мониторинга Sentry имели только отдельные участники команд, обслуживающих инфраструктуру проекта и репозиторий crates.io, которые и без того имеют привилегированный доступ к рабочим серверам crates.io. Свидетельств о том, что осевшие в логах сессионные ключи использовались кем-то, не выявлено. После устранения проблемы подобные Cookie были удалены из всех записей о событиях в Sentry, а связанные с ними активные сеансы пользователей завершены.

  1. Главная ссылка к новости (https://blog.pypi.org/posts/20...)
  2. OpenNews: Подмена зависимости в Python-библиотеке, насчитывающей 40 млн загрузок в месяц
  3. OpenNews: 46% Python-пакетов в репозитории PyPI содержат потенциально небезопасный код
  4. OpenNews: Ошибка в обработчике GitHub Actions привела к публикации вредоносных релизов Ultralytics
  5. OpenNews: Утечка токена для полного доступа к GitHub-репозиториям проекта Python
  6. OpenNews: GitHub и Twitter по ошибке сохраняли открытые пароли в логе
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63086-pypi
Ключевые слова: pypi, crate, python, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 15:33, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    А у нас даже пароли в логи пишутся, начальник в курсе и ему всё равно.
     
     
  • 2.5, Аноним (5), 15:36, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    а нечего работать в спортлото
     
     
  • 3.9, Ruslan (??), 15:47, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Почему? Руководству все равно. Значит такие нормы на предприятии.
     
     
  • 4.31, Анонимище (?), 17:54, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ему безразлично, но лишь потому что в случае взлома крайним станет кто-нибудь из его подчиненых. Поэтому надо бежать из такого заведения, от греха подальше
     
     
  • 5.62, нах. (?), 10:21, 17/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У меня для тебя хреновые новости, но ты уже почти взрослый и тебе пора узнать правду: сбежать оттуда сможет снова только начальник. У раба цепь слишком короткая.

     
  • 4.40, Аноним (40), 18:53, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему? Руководству все равно. Значит такие нормы на предприятии.

    1) Потому что работать на помойке это как минимум не уважать себя.
    2) Какой начальник - такой будет и коллектив.
    3) Крайним потом окажется вовсе не начальник и сидеть придется не ему.

     
     
  • 5.41, Аноним (41), 19:14, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А может он всё это соберется монетанезировать.
     
  • 2.16, Аноним (16), 16:20, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а логи куда пишутся?
     
     
  • 3.33, Аноним (5), 18:10, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    логи используем вместо паролей
     
  • 2.17, Аноним (17), 16:22, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    беги!
     
  • 2.23, Аноним (23), 17:04, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Надеюсь не гос? Если гос, сообщай в роскомнадзор, а сам меняй работу.
     
     
  • 3.44, penetrator (?), 19:31, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    а зачем ему это? если бы хотел уже давно бы сменил он работу, а так он сидит в тепленьком скорее всего
     
     
  • 4.46, нах. (?), 19:46, 16/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.59, 1 (??), 09:06, 17/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ты даёшь - там вся команда за счёт этого кормится.
     
  • 2.67, Аноним (67), 14:43, 17/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А у нас даже пароли в логи пишутся, начальник в курсе и ему всё равно.

    А иначе пришлось бы стикер с паролем к монитору клеить. Начальник мудр.

     

  • 1.11, Аноним (11), 15:55, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Успели получить CVE-индентификатор? :)
     
     
  • 2.47, нах. (?), 19:48, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    конечно успели - эти торгаши цифирками продавали их оптом впрок.

     

  • 1.14, Аноним (14), 16:12, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Именно поэтому так важен труд ментейнеров дистрибутивов. Особенно Debian, который имеет репозиторий с копиями исходников. Полная воспроизводимость и контроль сборки. Полагаться на такие pypi и crates не стоит.
     
     
  • 2.36, n00by (ok), 18:21, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Одна беда: контроль у них "собралось-запустилось".
     
     
  • 3.38, Аноним (14), 18:33, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы буквально пересказали моё же сообщение, но умудрились выставить в негативном ключе. В pypi и crates вообще-то нет воспроизводимости. В crates так вообще сборок нет.
    Так что вы пытались сказать?
     
     
  • 4.42, n00by (ok), 19:17, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ровно то, что и сказал: не надо делать вид, будто бы непосильный труд майнтайнеров устраняет упомянутые в теме и прочие подобные возможные проблемы.
     
     
  • 5.63, Аноним (63), 10:30, 17/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Непосильный труд майнтайнеров поддерживает горение низа твоей спины.
     

  • 1.20, Аноним (20), 16:30, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > среди отправляемых данных присутствовало поле с содержимым Cookie "cargo_session", в котором находился сессионный ключ

    Ну и зачем? Не, вот серьезно. Кому и при каких обстоятельствах такое в башку взбрендило? "Дай-ка буду в сентри сессию отправлять, потому что -- а почему бы и нет?"

     
     
  • 2.32, fuggy (ok), 17:59, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот вообще не понимаю кто придумал отправлять логи в стороннюю организацию. И как это вообще согласовывается с политикой безопасности. При том что это бекенд где можно напрямую своё хранилище использовать, а не куча мобильных клиентов с которых нужно собирать логи. Да и при любой возможности нужно sentry.io блокировать на устройстве.
     
     
  • 3.48, нах. (?), 19:50, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот вообще не понимаю кто придумал отправлять логи в стороннюю организацию.

    все кто держал логи в собственной - активно ищут работу.

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

     
     
  • 4.50, myster (ok), 20:43, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    в облаках логи хранить денежек тоже стоит не малых. Я как то в Datadog логирование настраивал, потом счёт не хилый за логи был у заказчика, но они сами так захотели.

    ИМХО держать свою систему сбора логов проще и дешевле.
    Тот же Sentry разворачивается в self-hosted варианте на изи. Правда, то как это выглядит - срамота, сколько же они в этом Sentry накрутили дичи, благо развернуть можно одним Docker Compose конфигом или Helm чартом и не смотреть туда, чтобы не портить себе нервы.

     
     
  • 5.57, User (??), 07:52, 17/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, ну если задача "хранить события безопасности 25 лет" по требованию ИБэ - то, пожалуй, дешевле самому. А вот если с ними периодически работать приходится - да еще ни дай б-г в привязке к метрикам\трейсам, да с разделением по командам\средам - уже дискуссионно.

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

     
     
  • 6.65, myster (ok), 10:46, 17/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если периодически с ними работать, то нужно определиться за какой период держать активные логи доступными для анализа. Как только период определен, остальные логи можно складывать на холодное или ледяное S3 хранилище в облаке, там тарифы не такие дорогие за хранение.
     
  • 2.34, Аноним (34), 18:12, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Кому надо нужно было незаметно дать доступ куда надо, вот и сделали. А то, что не нашли случаев использования, так это они так говорят, стороннего аудита не было (и не будет).
     
  • 2.75, Аноним (75), 19:07, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно потому, что там не по одному куки выбирали для отправки в лог (т.е. выборочно), а сразу весь массив? Лень - не всегда двигатель прогресса.
     

  • 1.37, n00by (ok), 18:24, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    То есть Python Package Index привязывал права к пользователю? Тогда как следовало к организации. Сколько ещё подобных гениев создают ПО и одаряют им окружающих?
     
     
  • 2.51, Аноним (51), 21:01, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Эти ответят: "Что подвезли из того и собираем."
     
  • 2.58, User (??), 08:15, 17/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ээээ... если взять какой-нибудь group membership в AD - то там членство в группах опредяляется атрибутом member группы... Но в атрибутах пользователя есть _вычисляемый_ memberof, который "вычисляется" не на лету, а при изменении member в группе - и да, для выписки kerberos ticket используется именно memberof пользователя (С нюансами в виде вложенности, но).
    И да, с неконсистентностью member != memberof сталкивался лично - из группы пользователя удалили, а в memberof атрибуте пользователя членство есть и в тикете группа есть и права, сталбыть, тоже есть.
     

  • 1.45, Аноним (45), 19:37, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так вся эта концепция слабоконтролируемых репозиториев пакетов для программистов - очень ненадёжная. А люди привыкают, проекты обрастают избыточными зависимостями, привязкой к интернету. Всё это очень неустойчиво выглядит для серьёзного применения (в долгосрочной перспективе).

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

     
     
  • 2.49, Аноним (49), 20:27, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пока за жопу не укусят, ничего не измениться. Пока не ломанули крейты в тихую, с последующим захватом всех проектов, ничего и не изменится.
    Кстати, после той истории с хз, изменилось что нибудь?
     
     
  • 3.52, Аноним (51), 21:04, 16/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вряд ли. Из-за экономии "Из Дев прямо в Прод". DevOps же.
     
     
  • 4.68, BorichL (ok), 14:47, 17/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да фигня, мы из без ДевШлёпсов 25 лет почти сразу в прод пишем с минимальным тестированием и всё нормально так пашет. Прод рад быстрой реакции, а мы смелые парни, не то, что местные зассыхи!
     

  • 1.53, Аноним (51), 21:06, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не хочется выглядеть "пляшущим на костях", но "Вас же предупреждали" )
     
     
  • 2.72, Аноним (-), 07:35, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я второй раз за неделю сталкиваюсь с ситуацией, когда человек сначала заявляет, что не хочет плясать на костях, а потом демонстрирует поведение, которое он, судя по всему, считает "пляской на костях". Что происходит? Майндконтроль со стороны инопланетян, и вы делаете не то, что хотите делать сами, а то, что хотят инопланетяне?
     

  • 1.54, Аноним (51), 21:18, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Отмечается, что доступ к серверу мониторинга Sentry имели только отдельные участники команд, обслуживающих инфраструктуру проекта и репозиторий crates.io, которые и без того имеют привилегированный доступ к рабочим серверам crates.io.

    А Мандат от Всевышнего на непогрешимость у них есть? )
    Больше, есть привилегии над привилегиями и имперсоналити от лица Системы и Сервера. Были случае. Конкретные продукты упоминать не буду. Хотя, наверно, и так скроют сообщение.

     
  • 1.55, Аноним (51), 21:33, 16/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не исключен случай, когда в адресном пространстве процесса размещена библиотечка, которая способна вызвать обработчик "сброса этого дампа". Так прозрачно и регулярно.
     

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



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

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