The OpenNET Project / Index page

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



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

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов в репозиториях Fedora и openSUSE"  +/
Сообщение от opennews (??), 22-Мрт-25, 22:54 
Исследователи безопасности из компании Fenrisk раскрыли информацию об уязвимостях в инструментариях Pagure и OBS (Open Build Service), позволявших скомпрометировать инфраструктуры формирования пакетов дистрибутивов Fedora и openSUSE. Исследователи продемонстрировали возможность совершения атаки для выполнения произвольного кода на серверах с Pagure и OBS, что можно было использовать для подстановки изменений в пакеты в репозиториях Fedora и openSUSE...

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

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

Оглавление

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

5. Сообщение от Аноним (5), 22-Мрт-25, 23:23   +3 +/
> Например, для просмотра файла /etc/passwd можно открыть страницу "http://pagure.local:5000/your-repository/issue/raw/../../../....

А грабли всё те же.

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

6. Сообщение от Аноним (6), 22-Мрт-25, 23:24   +/
doublecmd предлагал поставить его через openSUSE Build Service и я соглашался...
Ответить | Правка | Наверх | Cообщить модератору

7. Сообщение от Аноним (7), 22-Мрт-25, 23:25   –2 +/
> /usr/bin/git --pretty=oneline --abbrev-commit <HERE>

Лечится обычным двойным дефисом "--". Этот двойной дефис надо перед позиционными аргументами. К сожалению, не все CLI-утилиты такое поддерживают. Рекомендую глянуть в свои нескучные баш-скрипты. Видите там echo "$variable"? Значит ваш скрипт насквозь уязвим: в variable может быть "-e", "-n" или прочая шняга, которую эхо воспримет как модификатор поведения, а не как значение к выводу. И вообще, вместо echo нужен printf, но смузихлебы об этом не знают. И вообще, вместо баша/sh нужен нормальный скриптовый язык вроде питона, но смузихлебы будут продолжать апеллировать к дидам, мол, "они обходились без питона", и продолжать жрать кактус. Некоторые смузихлебы предпочитают баш-портянки нормальным сишным (!) готовым решениям вроде systemd, но это уже другая тема. Спасибо за внимание.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8, #9, #12, #28, #38, #41, #45, #46

8. Сообщение от Аноним (8), 22-Мрт-25, 23:39   +3 +/
По-моему это работает только в гнутых софтинах с getopt. Вон в питоне задепрекейтили и дропнули такой интерфейс, не модно. А какой-нибудь 7zip или unrar это просто боль на самом деле.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #21, #25

9. Сообщение от Dzen Python (ok), 22-Мрт-25, 23:40   +/
Безопасен компьютер, отключенный от любой сети.
Более безопасен комп, где может выполняться только ядро.
Абсолютно безопасен компьютер, который выключен, обесточен и спрятан в сейф.

Что сказать-то хотел?
Eval() в своих скриптовых языках уже точно обезопасил?
Системди уже избавился от вороха недоработок/открытых багов с тегами #WONTFIX в иссюях?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #14

12. Сообщение от НяшМяш (ok), 22-Мрт-25, 23:44   +2 +/
> И вообще, вместо баша/sh нужен нормальный скриптовый язык вроде питона

Чел, в Pagure тупо все 4 CVE починены в питон коде...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #17

14. Сообщение от Аноним (8), 22-Мрт-25, 23:45   +/
Никто пользовательский ввод без санитизации не передаст никуда. А если передаст, то бэкдор вполне осознанный, и надо спрашивать с причастных. Самая жесть это файловые имена, тут отдельное спасибо авторам-вендузятникам (привет 7zip и unrar опять же).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

15. Сообщение от Аноним (-), 23-Мрт-25, 00:11   +/
> http://pagure.local:5000/your-repository/issue/raw/../../../...

Питонисты просто няшки, собрали олдовый, классический такой баг :)

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

17. Сообщение от Аноним (-), 23-Мрт-25, 00:22   +2 +/
> Чел, в Pagure тупо все 4 CVE починены в питон коде...

Три из которых - взаимодействие с башпортянками или вызовы через передачу параметров?
Вот в этом и проблема.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #20

18. Сообщение от Аноним (18), 23-Мрт-25, 00:27   +/
> Выполнения кода с правами пользователя git на сервере Pagure позволяет
> контролировать всё содержимое репозиториев с пакетами.

Прикольно придумано - нанять каких-то джунов кодить питонохрень используемую одним проектом - и потом вещать про безопасность цепочек поставок! Что может пойти не так?!

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

19. Сообщение от Аноним (19), 23-Мрт-25, 00:41   +15 +/
- обработкой символических ссылок
- указание символов "/.."
- корректность идентификатора не проверяется
- отсутствовала должная проверка URL

надо было писать на безопасном языке... ой, тут нет ни одной ошибки с памятью.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #31, #33, #44

20. Сообщение от Аноним (-), 23-Мрт-25, 00:43   +/
> Три из которых - взаимодействие с башпортянками или вызовы через передачу параметров?

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

> Вот в этом и проблема.

А когда питонист удумавший откосплеить сервак собой и наступивший на совершенно классическую граблю с ../../../ - это, стало быть, норм? :)

ЧСХ все 4 - лажа питониста с санитизацией ввода. Что хотите с этим то и делайте! В общем если кто нанял питоноджуна кодить - он и получил безопасность цепочек поставок под стать. Chain only as strong as its weakest link.

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

21. Сообщение от Аноним (21), 23-Мрт-25, 00:49   –2 +/
Это работает везде, даже в самописных программах. Причём строк занимает столько же, сколько было бы с интерфейсом getopt, в любом языке. Даже в баше. Даже в Си.
```
opt_a= opt_b= opt_longopt=
while [[ $# -ge 1 ]]; do
case "$1" in
--help) usage; exit ;;
-a) opt_a=1; shift ;;
-b) opt_b=1; shift ;;
--longopt) opt_longopt="$2"; shift 2 ;;
--) shift; break ;;
-*) echo error: unknown option "$1" >&2 ; exit 69 ;;
*) break ;;
esac
done
```
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

22. Сообщение от Аноним (21), 23-Мрт-25, 00:52   +/
Мне больше интересно, это сколько ж они кода написали, что никто это даже проверять не стал?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #29, #47

25. Сообщение от Аноним (21), 23-Мрт-25, 00:56   +/
На getopt интерфейс, к сожалению, вообще лучше не полагатся. Гугл, например, в андроиде этот интерфейс поломали. Только уже не помню как именно, под каким-то постом здесь писал уже про это. Благо заменить его альтернативой, работающей точно так же почти в стиле POSIX вообще не проблема.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

26. Сообщение от Аноним (29), 23-Мрт-25, 01:06   +4 +/
Вот нормальные уязвимости такие, легко и сочно, и можно пол мира обгадить ломаными пакетами, без какого-либо палева. А то там буфер заполни цифры какие-то
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #61

28. Сообщение от Аноним (21), 23-Мрт-25, 01:07   +/
Можно ещё не запускать всякий шлак от рута и делить программы на пользователей. Даже 32 тысяч уникальных айдишников на серваке должно хватить. Но девопсы по большей частью заняты (уже лет 20 точно) джейсоноукладкой, а не настройкой системы под свои нужды.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #48

29. Сообщение от Аноним (29), 23-Мрт-25, 01:13   +/
Да просто все в грабу эту безопасность видали!!! Пока не доплатят и в ТЗ не прибьют гвоздями даже вялого юнит теста никто не напишет, какой-там аудит. Партия сказала ннада! Кам-самол запилил и послал задачу нах. Точка на деревьях почки.
Вас поломали? Ой какая жалость. Нада была на расте! Там ваааще нече не надо, просто сэйфти как в сейфе
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

31. Сообщение от Аноним (31), 23-Мрт-25, 01:29   –2 +/
Тут ни одной ошибки с памятью пока не нашли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #49

32. Сообщение от Аноним (32), 23-Мрт-25, 01:46   +/
Надо было landlock использовать.
Ответить | Правка | Наверх | Cообщить модератору

33. Сообщение от Аноним (33), 23-Мрт-25, 04:01   –2 +/
> надо было писать на безопасном языке... ой, тут нет ни одной ошибки с памятью.

Ахаха, ты подумал что оно на Си? Посмотри репозиторий, там некое поделие на питоне.

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

34. Сообщение от Ilya Indigo (ok), 23-Мрт-25, 04:06   +1 +/
https://www.suse.com/c/statement-on-cve-2024-22033-compromis.../
Для openSUSE OBS далеко не настолько всё страшно, как описано в новости.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #39, #58

38. Сообщение от Ivan_83 (ok), 23-Мрт-25, 07:55   +/
В shell script это обычно не проблема ибо запускающий делает это для себя, а не как обработчик чего то полученного извне.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

39. Сообщение от Аноним (39), 23-Мрт-25, 08:23   –1 +/
Многие думают. что после нахождения уязвимости все будут взломаны. Такая чушь несусветная.
Кому это надо, тратить время на эксплоит, который заработает или не заработает - не знаем.
А компании наворуют данные и так.. через бэкдоры
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #40

40. Сообщение от Аноним (19), 23-Мрт-25, 08:33   +/
> компании наворуют данные и так.. через бэкдоры

Найденный бэкдор "становится" уязвимостью.

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

41. Сообщение от bdrbt (ok), 23-Мрт-25, 09:54   +/
Ну так-то "нормальный скриптовый язык" процентов на 20-пюре и на 80-обвязки над этими самыми консольными утилитами, но... вобщем кто-то об этом не знает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

44. Сообщение от чатжпт (?), 23-Мрт-25, 12:23   +3 +/
будто это отменяет тысычи других cve где в shot int присваивают long int и получают выполнение кода
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #50

45. Сообщение от Аноним (45), 23-Мрт-25, 14:45   +/
>И вообще, вместо баша/sh нужен нормальный скриптовый язык вроде питона

Спасибо, не надо. Уже и так куча пакетов питоном заражена. Вместо питона нужно писать на нормальном основном языке проекта

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #51

46. Сообщение от Аноним (46), 23-Мрт-25, 15:05   –1 +/
>вместо баша/sh нужен нормальный скриптовый язык вроде питона

В нормальных языках можно определить отдельный тип для путей, и строку нужно будет к этому типу приводить, и при приведении будет проверка на наличие '/../', вплоть до ошибки. Но в бидоне же динамическая типизация

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

47. Сообщение от Аноним (-), 23-Мрт-25, 15:56   +/
> Мне больше интересно, это сколько ж они кода написали, что никто это
> даже проверять не стал?

Ну так наняли дешевого питоноджуна, потому что ему платить меньше а результат вроде как-то работает. Но принцип как заплачено так и зафигачено - не отменяли. Этот тип окончил - недельные курсы, и пощел скорее-быстрее наниматься хоть куда. И умел - вот на столько.

И конечно у него не было опыта создания веб серверов и знания типовых проблем направления. У кого он был - за зарплату питоноджуна ессно не пойдут. И питон для большого долговременного проекта не возьмут, для начала. И уж конечно не станут вон ту "архитектуру" решения делать. А корп решивший сэкономить получает вот такой подарок в цепочку поставок. Чтож, возможно аудит ВСЕХ ПРОЕКТОВ в GIT обойдется им дешевле :). Можно и на этом сэкономить! Но тогда грех жаловаться если и там бэкдор случайно всплывет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #52

48. Сообщение от Аноним (-), 23-Мрт-25, 16:03   +/
> Можно ещё не запускать всякий шлак от рута и делить программы на
> пользователей. Даже 32 тысяч уникальных айдишников на серваке должно хватить. Но
> девопсы по большей частью заняты (уже лет 20 точно) джейсоноукладкой, а
> не настройкой системы под свои нужды.

И как это все поможет от идиота не валидирующего что пользователь накидал - так что давайте перезапишем вон тот гит на наш левак, с хакаными пакетами?! Оно ж рулит этим гитом и by design должно уметь читать-писать оный.

По моему фикс тут - не нанимать всяких дятлов кодить системы где потом весь дистр нагнуть можно.

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

49. Сообщение от Аноним (-), 23-Мрт-25, 16:06   +1 +/
> Тут ни одной ошибки с памятью пока не нашли.

Спиливание мушки не повлияло на участь Джо...

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

50. Сообщение от Аноним (-), 23-Мрт-25, 16:07   –1 +/
> будто это отменяет тысычи других cve где в shot int присваивают long
> int и получают выполнение кода

Видно птицу по помету. Shot int у него. Ну хоть не headshot int, и на том спасибо. Позагадили такие как вы своими "программами" типа вон того - и еще на других быковать смеете. Позор!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #53

51. Сообщение от Аноним (-), 23-Мрт-25, 16:19   +/
>>И вообще, вместо баша/sh нужен нормальный скриптовый язык вроде питона
> Спасибо, не надо. Уже и так куча пакетов питоном заражена. Вместо питона
> нужно писать на нормальном основном языке проекта

Да вон уже напрогали на питончике. И получили аж 4 CVE потому что нубоджуну никто не сказал что ввод надо валидировать.

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

52. Сообщение от User (??), 23-Мрт-25, 16:37   +/
Как вы думаете, найду ли я что-нибудь, связанное с "relative path traversal" в исполнении с, perl, php, Java etc сеньоров на mitre с одного запроса, или потребуется аж целых джва?
"Классичность" баги как бы намекает, что дело тут не в бобине...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

53. Сообщение от чатжпт (?), 23-Мрт-25, 18:42   +2 +/
вот, одна опечатка и у сишника уже переполнение и выход за границы буфера 😂
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #55

55. Сообщение от Минона (ok), 23-Мрт-25, 21:37   +1 +/
Признайся, ты специально опечатался.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

58. Сообщение от нах. (?), 24-Мрт-25, 12:58   +/
Собственно, да:
https://fenrisk.com/open-build-service - первоисточник с выпиленным видео ниочем.

Героическим усилием через миллион стремных мест удастся запустить шелл от непривиллегированного юзера выполняющего сборку пакета (причем в настоящей ОБС этот юзер, сборка и все вместе существуют внутри одноразовой сборочной виртуалки, где ничего кроме твоего пакета и нет) - что, конечно, не было так задумано.

Стоп, здрасьте - а зачем мы это все запускали, если обс и так запускает наши сборочные скрипты - от того же юзера и там же?!

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

Т.е. проблема существует только у васяна с его домашней ОБС внутри которой он делает curl | sudo sudo su неглядя... т.е. опять же не существует, он этот пакет у себя потом еще и запускать собирался, незачем ломать сборку самому себе в надежде на сомнительный успех - надо просто подождать пока соберется. Еще и от рута запустит, за тебя.

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

61. Сообщение от пох. (?), 24-Мрт-25, 18:01   +/
ну какой весьмир? Подкроватные серверы на федорином горе только. Зачем?!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26


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

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




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

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