The OpenNET Project / Index page

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

Атакующим удалось добавить незамеченный вредоносный код в репозиторий Plone

01.02.2026 10:20 (MSK)

Разработчики свободной системы управления контентом Plone, написанной на Python и JavaScript/NodeJS, объявили об инциденте, в результате которого в git-репозиторий проекта на GitHub был добавлен вредоносный код. Изначально в репозитории были выявлены три появившихся 7 января изменения (1, 2, 3), добавляющие вредоносный код в JavaScript-файлы проекта (1, 2, 3). Разбор инцидента показал, что интеграция вредоносного кода была произведена в результате компрометации учётной записи одного из разработчиков, токен доступа которого был захвачен злоумышленниками после запуска вредоносного ПО в его системе.

14 января скомпрометированная учётная запись была заблокирована, а разработчикам проекта рекомендовано проанализировать коммиты с 1 по 14 января. 27 января было обнаружено, что замеченными коммитами дело не ограничилось и атака затронула пять репозиториев проекта (plone/volto, plone/mockup, plone/plone.app.mosaic, plone/critical-css-cli, plone/plonetheme.barceloneta), в которые был незаметно интегрирован вредоносный код. В случае репозитория plone.app.mosaic, атакующим удалось подменить master-ветку. Атака была проведена спустя два месяца после захвата токена доступа разработчика.

Для интеграции изменений вместо обычных коммитов атакующие воспользовались операцией "force push" (git push с опцией "--force"), позволяющей принудительно заменить ветку во внешнем репозитории своим содержимым и, соответственно, переписать историю изменений (после замены показывается история из ветки, загруженной атакующим). Для предотвращения подобной подмены веток в будущем разработчики Plone включили в GitHub правила, блокирующие операции "force push" для основных веток и тегов.

В репозитории plone.app.mosaic для затруднения выявления компрометации атакующие подставили в master-ветку вредоносный коммит, имеющий фиктивную дату - 18 декабря, полагая, что область поиска вредоносного кода сосредоточится на изменениях, добавленных после их первой активности в репозитории. Вредоносное изменение преподносились в подставленном коммите как начало разработки нового тестового выпуска, но помимо смены номера версии в метаданных (с 4.0.0a1 на 4.0.0a2.dev0) в вызываемый на этапе сборки javascript-файл‎ prettier.config.js был добавлен вредоносный код. Для скрытия при просмотре изменения в терминале код был добавлен в одной строке с легитимной операцией и смещён из видимой области с использованием пробелов. В интерфейсе GitHub данный код также не показывался по умолчанию и требовал нажатия кнопки "Load Diff".

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

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: 7 уязвимостей в системе управления контентом Plone
  3. OpenNews: Обновление системы управления контентом Plone с устранением 24 уязвимостей
  4. OpenNews: Критические уязвимости в Plone, Zope и Konqueror
  5. OpenNews: Релиз системы управления контентом Plone 4.0
  6. OpenNews: Взлом внутреннего GitLab-сервера Red Hat
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64718-plone
Ключевые слова: plone, hack
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (21) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:57, 01/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Force push? Так а ничего, что у всех потом репозиторий перестанет пулиться?
     
     
  • 2.2, ананас (?), 11:05, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    там поди только 1 разраб
     
     
  • 3.10, Аноним (1), 11:26, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, этот как-то топорно было. Джи Танг или как там того китайца/корейца/японца звали, что в ssh пушил, показал класс. Там по всему репозиторию растер и чудом заметили.
     
  • 2.20, Аноним (20), 12:27, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    vibe pulling

    Спросят у чат бота почему не пулится, получат и применят ответ. И всё работает как надо.

     
  • 2.21, Аноним (21), 12:44, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ты думаешь как его вычислили? Без этого бы так ничего бы и не поняли.
     

  • 1.3, Аноним (3), 11:06, 01/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    "Си дыряв — пишу на NodeJS и Rust", — говорили они.
     
     
  • 2.6, Grigoriy Wiser (ok), 11:18, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вы адекватны? При угоне доступа без разницы, на каком языке написан код, хоть на ассемблере, хоть "0010 0101 1110".
     
  • 2.26, Аноним (26), 13:35, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > вредоносный код ... в git-репозиторий проекта на GitHub
     

  • 1.4, Аноним (4), 11:08, 01/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Первый раз слышу о таком проекте, ну это же не хром или ядро, очевидно что проект маленький, ну какая там команда разработчиков, человек 10? Понимаю если 100, тогда ещё можно не уследить, но тут же вполне реально вчитываться в присылаемые изменения, даже от коллег.
    Ок, примем что ребята просто на доверии, расслабились и не учли что возможность компрометации никогда не равна нулю.
     
     
  • 2.11, Аноним (11), 11:34, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Первая CMS на Python, ей лет тридцать
     
  • 2.15, Аноним (15), 12:03, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    То что вы о проекте не слышали, не говорит о том, что он не популярен. В своё время Plone была одной из самых популярных CMS, но потом её вытеснил WordPress.

    https://ru.wikipedia.org/wiki/Plone

     
  • 2.25, Аноним (25), 12:55, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ты ещё скажи что никогда не слышал про web application server Zope (https://ru.wikipedia.org/wiki/Zope)
     

  • 1.5, Аноним (4), 11:09, 01/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А еще интересно, кто стоит за этим, и похожими взломами реп питона и жс.
     
     
  • 2.27, Аноним (26), 13:37, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > git-репозиторий проекта на GitHub

    GitHub - это Микрософт.

     

  • 1.7, Аноним (4), 11:20, 01/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вообще, нужно уже придумывать что то новое, для избежания подобных атак, хз, не принимать например изменения от непонятно кого, например, или в чате разработчиков ввести правило, что перед тем как кто-то вносит изменения, обязательно всех оповестить об этом, ну и всем работать не через токены, а просто предлагать изменения, и далее в чате, только уже после, решать, вносить их или нет. Хакерам для такого придется еще и чат ломать.
     
     
  • 2.9, Аноним (9), 11:21, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да да а патчи по емайл принимать одному человеку...
     
     
  • 3.17, Васян (?), 12:11, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    -- - - --  Да да а патчи по емайл принимать одному человеку...

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

     
  • 2.28, Аноним (28), 13:52, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше всего mailing list сделать, куда слать патчи с помощью git-send-email.
     

  • 1.13, Аноним (13), 11:46, 01/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для предотвращения подобной подмены веток в будущем разработчики Plone включили в GitHub правила, блокирующие операции "force push" для основных веток и тегов.

    Это первое, что должны делать сопровождающие новых реп. Странно, что гитхаб сам не рекомендует отключить force в мастер ветки.

     
     
  • 2.14, Аноним (14), 11:56, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И что предлагаешь делать всяким винампам? Их же засудят на много денег.
     
     
  • 3.24, Аноним (21), 12:48, 01/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Временно отключать правило,а потом опять включать.
     

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



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

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