The OpenNET Project / Index page

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



"Подмена зависимости в Python-библиотеке, насчитывающей 40 млн загрузок в месяц"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Подмена зависимости в Python-библиотеке, насчитывающей 40 млн загрузок в месяц"  +/
Сообщение от opennews (??), 10-Мрт-25, 20:01 
В библиотеке Python JSON Logger выявлена уязвимость (CVE-2025-27607) дающая возможность подменить зависимость при установке через каталог PyPI и добиться выполнения своего кода на системах, использующих данный пакет. Библиотека Python JSON Logger, которая позволяет организовать ведение лога в формате JSON, за последний месяц была загружена 40 млн раз.  Проблема  устранена в версии Python JSON Logger 3.3.0, опубликованной 7 марта...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=62856

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +13 +/
Сообщение от Аноним (1), 10-Мрт-25, 20:01 
> не уведомив разработчиков зависимых пакетов

а должен был? это же опенсорс, детка, здесь и удалить своё репо могут

Ответить | Правка | Наверх | Cообщить модератору

15. Скрыто модератором  +5 +/
Сообщение от von Ketteler (-), 10-Мрт-25, 22:05 
Ответить | Правка | Наверх | Cообщить модератору

32. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Смузихлеб забывший пароль (?), 11-Мрт-25, 07:44 
Ну вообще-то нет. Что выложено - то выложено. Надоело вечно допиливать - просто перестаёшь новые версии выгружать
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

44. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от anonymous (??), 11-Мрт-25, 09:22 
Это разработчики python должны были предусмотреть возможность фиксации зависимостей.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

57. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от нах. (?), 11-Мрт-25, 15:35 
А они и предусмотрели. Но васяны с лефтпадом этой возможностью не пользуются, потому что во-первых это совершенно ненужная им затрата времени, во-вторых с новой версией лефтпада может приехать устраненная уязвимость с тем же самым успехом, в-третьих васян вовсе может не предполагал невиданного узбека своего лефтпада, использующего десять других лефтпадов, а просто пилил для себя, и не собирается переживать из-за того что ты встроил его васян-код в свой скрипт управления системой NORAD.

Такая возня с ручной фиксацией цифирек возможна только в корпоративной разработке, да и то если только под руку не толкают со сроками и фичами. (Т.е. невозможна даже и там.)

Ну и у васяна под кроватью, но кому он нужен, ломать его...

Ответить | Правка | Наверх | Cообщить модератору

2. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +5 +/
Сообщение от Ivan_83 (ok), 10-Мрт-25, 20:07 
> выявлена уязвимость (CVE-2025-27607)

В чём уязвимость то!?
Причём тут вообще какой то питон логер!?


Это проблема системы установки зависимостей самого питона допускающая атаку на цепочку поставок.

В общем репутация CVE скамеров помножается на ноль.

Ответить | Правка | Наверх | Cообщить модератору

12. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  –8 +/
Сообщение от Аноним (1), 10-Мрт-25, 21:21 
тебе никогда не стать фрибзд комиттером, как бы ты не старался

цве нужен для того, чтобы когда человек прочёл заафекченные версии, мог сразу понять - он скорее всего заафекчен, а вот версия Х+1, где зависимость убрали\изменили - она уже безопасна

Ответить | Правка | Наверх | Cообщить модератору

24. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +3 +/
Сообщение от Ivan_83 (ok), 11-Мрт-25, 00:00 
Чувак, мне им никогда не стать потому что я уже и не хочу давно. Да и раньше не очень сильно хотел.

А если ты навешиваешь CVE по зависимости - то тебе надо навешивать её не на одну нещастную либу а на все проекты где эта зависимость есть. Мне чото кажется таких проектов должно быть больше одного.

Но вообще, я не видел раньше чтобы CVE вешали вот так.
В том же ffmpeg да и прочих популярных либах ни раз что то находили, но никогда не приходили к проектам которые эти либы юзают.

Ответить | Правка | Наверх | Cообщить модератору

33. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Смузихлеб забывший пароль (?), 11-Мрт-25, 07:47 
Вне зависимости от стараний никогда не стать тем, для кого будет великой честью работать как прОклятому за бесплатно на тех кто гребёт баблоу на пожертвованиях и тратит его хз как и хз куда
О, Боги, за что такое наказание, каков же смысл жЫть дальше :)
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

63. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (63), 11-Мрт-25, 19:15 
Смысл жизни – стать удобрением.
Ответить | Правка | Наверх | Cообщить модератору

3. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Аноним (3), 10-Мрт-25, 20:18 
Фигасе они насрали в обсуждении: https://discuss.python.org/t/stop-allowing-deleting-things-f...

Кто читал, какая аргументация против?

Кстати, май инглиш из вери бэд, бат "Stop Allowing deleting things from PyPI?" переводится Гуглом как "Запретить удаление объектов из PyPI?". Как это соотносится с "просили запретить повторную регистрацию удалённых проектов"???

Ответить | Правка | Наверх | Cообщить модератору

4. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +6 +/
Сообщение от Ivan_83 (ok), 10-Мрт-25, 20:32 
Да вот так.
Смотри какой прикол: я беру пачку денег которые охота сжечь ради лулзов, открываю топ этого вашего пипа, дальше пишу авторам: куплюк ваш проект прям сегодня за $10к.
Кто то с первой сотни по любому согласится.

Дальше я туда или коммичу фигню ломающую всё, ну типа оставляю только coc.md, или пихаю майнер или грохаю репу.

А дальше ловлю лулзы с телека про то как всё везде сломалось.
Притом с случае coc.md мне и предъявить то нечего: я честно купил, дальше делаю что хочу со своим проектом.

Ответить | Правка | Наверх | Cообщить модератору

9. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (9), 10-Мрт-25, 20:54 
Подобная шляпа решается версионированием, а точнее запретом (платформы хостинга репозитария) на изменения\удаление архивных версий. Ну а что вы хотели, ваш проект зависимостями задействован в другом ПО.
Ну т.е. в кюррент "20250319_6.8.24" ты изменения писать конечно можешь, а вот подменить\удалить архив(20210101_01.1.1.) - ты уже не должен иметь прав вообще.
Вопрос лишь во времени заморозки - через день-два, или неделю.
Удивлен, если в Пипи это не реализовано. Хотя что с них взять, вечно думают в шлангах и гейтах, вместо безопасности.
Ответить | Правка | Наверх | Cообщить модератору

21. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от пох. (?), 10-Мрт-25, 23:36 
> вы хотели, ваш проект зависимостями задействован в другом ПО.

DMCA takedown, и удалишь как миленький. (авторские права? Неаааа, не слышал?)

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

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

Ответить | Правка | Наверх | Cообщить модератору

40. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Фрол (?), 11-Мрт-25, 09:15 
товарищ ну вы то должны понимать что авторские права и права на распространение - это не муж и жена, а четыре разных человека?

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

Ответить | Правка | Наверх | Cообщить модератору

61. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Ivan_83 (ok), 11-Мрт-25, 17:09 
Так достаточно кинуть DCMA предъяву, чтобы ввели обеспечительные меры, а то что через месяц или год после судов и разборок это вернут на место - ваще пофик.
Ответить | Правка | Наверх | Cообщить модератору

41. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  –1 +/
Сообщение от Фрол (?), 11-Мрт-25, 09:19 
птушо что тебе предоставляют мит и жепль лицензии? не право считать себя Рав Моше Столлманом, например, право копировать его произведения в хвост и в гриву.
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

62. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Ivan_83 (ok), 11-Мрт-25, 17:10 
Право то оно право, только вот название придётся брать другое.
Ответить | Правка | Наверх | Cообщить модератору

23. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Ivan_83 (ok), 10-Мрт-25, 23:55 
> Ну т.е. в кюррент "20250319_6.8.24" ты изменения писать конечно можешь, а вот подменить\удалить архив(20210101_01.1.1.) - ты уже не должен иметь прав вообще.

ШО!?
Я типа за $10к это купил (или сам написал с нуля), делаю чо хочу.
Не нравится - идите в лес и пишите там сами.
А если ты против то приедут ребята в пативэне и применят обеспечительные резиновые меры и к серверам и к их владельцам. Но скорее всего хватит и просто емыла/звонка с обещанием приехать если через 5 минут не будет готово.

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

26. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  –2 +/
Сообщение от Аноним (26), 11-Мрт-25, 00:11 
>$10k

1. Оторван от реальности. Для тех вот авторов топовых проектов твои $10k - копейки. Пошлют далеко и надолго. И в паблик переписку выложат, просто чтобы поржать.
2. Как только ты это сделаешь ... огребёшь от платформы. Напомнить, какая корпорация взяла там на себя роль хозяина всей опенсорс экосистемы, и что она делает, когда очередной лефтпадчик наглеет?

Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

37. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  –1 +/
Сообщение от Жироватт (ok), 11-Мрт-25, 08:42 
1. Сильное заявление, доказывать его, конечно, никто не будет.
1.1. И? Постоянно такое всплывает, когда китайцы покупают расширения для браузеров.
2. ...только находясь в штатовской юрисдикции или юрисдикции их европейских вассалов. Реально, на территории ~70% всей обитаемой суши, прямо или косвенно не подпадающей под штатовские законы единственное что эта корпорация может - удалить аккаунт и заспамить тебя туповатыми полуавтоматическими письмами про "встретимся в суде", на которые просто ложится болт.
Ответить | Правка | Наверх | Cообщить модератору

39. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от нах. (?), 11-Мрт-25, 08:46 
Это ты оторван от реальности и явно даже читать не умеешь.

Для автора очередной вот такой msgspec-python313-pre (название конечно само за себя говорит) уже удаленной нахрен из репо - очень даже не копейки. Он, небось, вообще не думал что его васяноподелка кому-то нужна может оказаться. А оно - опачки, используется кое-кем третьим, у кого 40 миллионов загрузок (и кто ему, кстати, ничего не заплатит вообще).

И таких лефтпадов слепленных на скорую руку из дерьма и... дерьма без единой палочки - полный пипи.

Потому что "для того и брали", в том и смысл существования примитивных языков с миллионами лефтпадов, что всю твою работу за тебя выполнил миллион неведомых васянов с незаконченным средним образованием.

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

60. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Ivan_83 (ok), 11-Мрт-25, 17:00 
1. Я для того и написал взять ТОП, а потом спускатся по нему. Первые 50 наверное пошлют, а дальше остальные начнут думать и соглашатся, как бы до аукциона на понижение в итоге не дошло :)
Цель то не взять вершину топа а любой или любые проекты у которых много потребителей.
Вот указанная фигня явно была очень далеко от топа, но поломала коего кого что был выше.


2. Огребу что? Бан - дапофиг, для меня это как лишится читательского билета в мухосранске - потеря которая никак не ощущается.

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

5. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (5), 10-Мрт-25, 20:35 
Там ниже по тексту обсуждение запрета удаления в контексте защиты от повторного использования: If we remove project deletion, which is just one way to prevent name reuse, we should permit orphanage or something similar.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

6. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Аноним (6), 10-Мрт-25, 20:48 
Заходил Кэп, передавал что если нельзя будет удалить, то нельзя будет и повторно зарегистрировать.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

10. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +3 +/
Сообщение от Аноним (10), 10-Мрт-25, 20:55 
Но всегда можно перепродать
Ответить | Правка | Наверх | Cообщить модератору

19. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (19), 10-Мрт-25, 23:01 
Всегда можно найти выход.
Ответить | Правка | Наверх | Cообщить модератору

7. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +4 +/
Сообщение от Аноним (7), 10-Мрт-25, 20:51 
Уязвимости уровня "придти, вскрыть при всех, перепаять.. профит!" уже не впечатляют, пошли уязвимости "а вот если бы"...
Ответить | Правка | Наверх | Cообщить модератору

38. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Жироватт (ok), 11-Мрт-25, 08:42 
Не, тут классическое "хакер и солонка"
Ответить | Правка | Наверх | Cообщить модератору

8. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (8), 10-Мрт-25, 20:53 
А я не использую PyPI. Ставлю через APT и через GitHub. Уже более 10 лет. Полёт нормальный. Шах и мат, подменщики зависимостей.

cat /etc/pip.conf
[global]
no-index = true
no-deps = true

Ответить | Правка | Наверх | Cообщить модератору

11. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (9), 10-Мрт-25, 20:56 
Где тот отважный герой-мантейнер, который перепаковывает все проекты из пипи, в апт-репозитарий?
P.S. Сам я в CPAN тоже давно не заходил - все из портов ставлю.
Ответить | Правка | Наверх | Cообщить модератору

25. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (26), 11-Мрт-25, 00:04 
Зачем все перепаковывать, если можно просто из гита ставить? pip это умеет.
Ответить | Правка | Наверх | Cообщить модератору

28. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Аноним (9), 11-Мрт-25, 04:11 
И как это защитит от очередного васяна, который решил пакеты на гите порушить?
Ответить | Правка | Наверх | Cообщить модератору

31. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +2 +/
Сообщение от Аноним (31), 11-Мрт-25, 06:58 
неудобный вопрос, игнорируем
Ответить | Правка | Наверх | Cообщить модератору

45. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  –1 +/
Сообщение от Аноним (45), 11-Мрт-25, 09:27 
Очень просто: ты ручками смотришь репозиторий перед использованием. Полная due digilence: лицензия (вы же не хотите вляпаться в GPL), pyproject.toml, далее исходники.
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

49. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от нах. (?), 11-Мрт-25, 10:13 
> ты ручками смотришь репозиторий перед использованием

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

Ответить | Правка | Наверх | Cообщить модератору

20. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Аноним (20), 10-Мрт-25, 23:27 
> cat /etc/pip.conf

cat: /etc/pip.conf: Нет такого файла или каталога

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

46. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (45), 11-Мрт-25, 09:27 
Это твоя проблема, что ты его не создал.
Ответить | Правка | Наверх | Cообщить модератору

13. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +2 +/
Сообщение от Аноним (13), 10-Мрт-25, 21:26 
PyPI, NPM, Cargo доставляют... зонды.
Ответить | Правка | Наверх | Cообщить модератору

14. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Илья (??), 10-Мрт-25, 21:59 
И только в нугете таких проблем не было
Ответить | Правка | Наверх | Cообщить модератору

16. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Tron is Whistling (?), 10-Мрт-25, 22:18 
Ахах, ну вот как раз то, о чём я и писал. Каждому лефтпаду - по пакету непонятно где. И все вот эти вот язычки без динамической линковки, и вся эта практика сбора монолита автоматом - вот сюда вот и приводит.
Ответить | Правка | Наверх | Cообщить модератору

34. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Смузихлеб забывший пароль (?), 11-Мрт-25, 07:52 
там проблема в возможности удаления пакетов, которые уже могут быть в зависимостях
Либо запретить удаление пакетов( что очевидно. Запарился поддерживать - ну и бросай это дело. Но, что уже сделано - то остаётся )
Либо - помимо версии и названия пакета, запоминать его хеши, чтобы можно было отличить старый пакет от нового с таким же названием но иным содержанием
Ответить | Правка | Наверх | Cообщить модератору

55. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Аноним (55), 11-Мрт-25, 13:43 
И кто будет проверять обновления сотен пакетов? Вот увидит разработчик, что после отпуска надо обновить три сотни пакетов - что он сделает?
Ответить | Правка | Наверх | Cообщить модератору

59. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Смузихлеб забывший пароль (?), 11-Мрт-25, 16:04 
суть вопроса неочевидна. Если блок уже есть - то он будет просто качаться безо всяких вопросов
В остальном - имеет смысл перечитать исходный коммент, в котором нет упоминаний каких-либо проверяльщиков ибо он совсем о другом
Ответить | Правка | Наверх | Cообщить модератору

17. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (17), 10-Мрт-25, 22:23 
Плюс в копилку пакетников дистров.
Ответить | Правка | Наверх | Cообщить модератору

22. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от пох. (?), 10-Мрт-25, 23:37 
Как будто их создают не скриптом, чохом подбирающим любой мусор из той же самой пиписки?

Ответить | Правка | Наверх | Cообщить модератору

29. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Аноним (9), 11-Мрт-25, 04:14 
чито бы подбирать гамно из пипи, нужно что бы были задействованы пятонячьи инструменты,
а умственно отсталых для этого в сборщиках дистрибов обычно нет.
Ответить | Правка | Наверх | Cообщить модератору

54. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от пох. (?), 11-Мрт-25, 13:22 
Был неправ, признаю.
Ответить | Правка | Наверх | Cообщить модератору

30. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от Аноним (30), 11-Мрт-25, 04:34 
Никогда не любил эти менеджеры пакетов в яп. Нужна библиотека - пиши сам или скачай на сайте руками. На каждую программу на таких языках приходится тянуть в систему целую помойку из зависимостей. Будто чувакам их в линуксе не хватает так они их в свой софт пихают.
Ответить | Правка | Наверх | Cообщить модератору

35. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Смузихлеб забывший пароль (?), 11-Мрт-25, 07:53 
Это если один работаешь. А если хотя бы 5-10 чел ? Каждому будешь пошагово объяснять, как конкретный добавленный пакет подключать на его стороне или в репу десятки-сотни мегабайт мусора закидывать ?
Ответить | Правка | Наверх | Cообщить модератору

36. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +1 +/
Сообщение от нах. (?), 11-Мрт-25, 08:33 
> Это если один работаешь.

это если не работаешь вообще. Один или впятером - без разницы.

> Каждому будешь пошагово объяснять

это называется - собеседование. И это они тебе объясняют уровень минимального владения инструментами для работы, или идут искать другого лош.....

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

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

Где гарантия что ты себе УЖЕ не троянскую версию скопировал-то?

Ответить | Правка | Наверх | Cообщить модератору

42. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (42), 11-Мрт-25, 09:20 
> Выявивший проблему исследователь зарегистрировал новый пакет именем msgspec-python313-pre и продемонстрировал на практике возможность выполнения кода при установке Python JSON Logger с зависимостями

Каким образом при установке зависимости выполняется код?

Ответить | Правка | Наверх | Cообщить модератору

52. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (52), 11-Мрт-25, 10:43 
Не хожу по ссылке, но по опыту предполагаю следующее.

Питоновские пакеты имеют как правило конфигурационный setup.py, в котором основные настройки приведены. Оттуда можно при желании и скрипты запускать, которые выполняются на этапе установки/конфигурации пакета. Поэтому если один пакет устанавливает какую-то зависимость, то отрабатывается и setup.py (этой зависимости). Кто-то умудрился переназначить зависимость на свой пакет со своим содержимым setup.py. Да, это дыра в безопасности, но уязвимостью это называть язык не поворачивается. Так оно и должно работать. Вот чего не должно - тянуть зависимости без оглядки.

Ответить | Правка | Наверх | Cообщить модератору

43. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (43), 11-Мрт-25, 09:22 
Подскажите, я у Rust с их crates ситуация получается аналогичной описываемой?
Ответить | Правка | Наверх | Cообщить модератору

47. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Я (??), 11-Мрт-25, 09:38 
на Раст такого нет, хакеры не могут выйти за блок unsafe, да и по памяти безопасность огромная, течёт, но не переиспользуется.
Ответить | Правка | Наверх | Cообщить модератору

48. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (48), 11-Мрт-25, 09:43 
зачем куда-то выходить? переписываешь пакет так чтобы он запрашивал явки и пароли пользователя и сливаешь их в облако
Ответить | Правка | Наверх | Cообщить модератору

50. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от нах. (?), 11-Мрт-25, 10:16 
Там чуть сложнее - надо уметь кодить, на хрусте. И при этом еще и что-то накодить чего нет в стандартной библиотеке, а она далеко не пустая. Иначе твой крейт с нулем скачиваний никому не сможет навредить.

Т.е. чисто технически ты можешь, но это уже будет не лефтпад и вот так выкрасить и выбросить тебе его будет жалко.

Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

51. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Anony (?), 11-Мрт-25, 10:29 
Нет, в расте запрещено удалять пакеты
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

56. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (55), 11-Мрт-25, 13:47 
> Нет, в расте запрещено удалять пакеты

А если санкции?

Ответить | Правка | Наверх | Cообщить модератору

53. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  –1 +/
Сообщение от Аноним (53), 11-Мрт-25, 11:30 
всё делается просто - пакеты на pypi должны подписываться ключом разраба, который выкладывает. В зависимостях должен быть ключ для проверки. У каждого разраба свой ключ.

вариант номер два - сложно и мутно, но фиксировать удаление/новые пакеты с тем же именем и не давать для пакетов, которые старше нового репа, подтягивать это в зависимостях. Т.е. заставлять обновить пакет + красным плевать, что пакет пересоздан

Ответить | Правка | Наверх | Cообщить модератору

58. "Подмена зависимости в Python-библиотеке, насчитывающей 40 мл..."  +/
Сообщение от Аноним (58), 11-Мрт-25, 15:36 
there is one way to do it во всей красе, ждём ещё прогрева питонистов на биткоины и бдсм для стада любитей единственных и неповторимых глобально-надёжно-питоничных решений.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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