URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 136372
[ Назад ]

Исходное сообщение
"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов в репозиториях Fedora и openSUSE"

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

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


Содержание

Сообщения в этом обсуждении
"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 22-Мрт-25 23:23 
> Например, для просмотра файла /etc/passwd можно открыть страницу "http://pagure.local:5000/your-repository/issue/raw/../../../....

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 00:41 
- обработкой символических ссылок
- указание символов "/.."
- корректность идентификатора не проверяется
- отсутствовала должная проверка URL

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 01:29 
Тут ни одной ошибки с памятью пока не нашли.

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 16:06 
> Тут ни одной ошибки с памятью пока не нашли.

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 04:01 
> надо было писать на безопасном языке... ой, тут нет ни одной ошибки с памятью.

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено чатжпт , 23-Мрт-25 12:23 
будто это отменяет тысычи других cve где в shot int присваивают long int и получают выполнение кода

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 16:07 
> будто это отменяет тысычи других cve где в shot int присваивают long
> int и получают выполнение кода

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено чатжпт , 23-Мрт-25 18:42 
вот, одна опечатка и у сишника уже переполнение и выход за границы буфера 😂

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Минона , 23-Мрт-25 21:37 
Признайся, ты специально опечатался.

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 22-Мрт-25 23:24 
doublecmd предлагал поставить его через openSUSE Build Service и я соглашался...

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 22-Мрт-25 23:25 
> /usr/bin/git --pretty=oneline --abbrev-commit <HERE>

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 22-Мрт-25 23:39 
По-моему это работает только в гнутых софтинах с getopt. Вон в питоне задепрекейтили и дропнули такой интерфейс, не модно. А какой-нибудь 7zip или unrar это просто боль на самом деле.

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 00:49 
Это работает везде, даже в самописных программах. Причём строк занимает столько же, сколько было бы с интерфейсом 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
```

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 00:56 
На getopt интерфейс, к сожалению, вообще лучше не полагатся. Гугл, например, в андроиде этот интерфейс поломали. Только уже не помню как именно, под каким-то постом здесь писал уже про это. Благо заменить его альтернативой, работающей точно так же почти в стиле POSIX вообще не проблема.

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Dzen Python , 22-Мрт-25 23:40 
Безопасен компьютер, отключенный от любой сети.
Более безопасен комп, где может выполняться только ядро.
Абсолютно безопасен компьютер, который выключен, обесточен и спрятан в сейф.

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 22-Мрт-25 23:45 
Никто пользовательский ввод без санитизации не передаст никуда. А если передаст, то бэкдор вполне осознанный, и надо спрашивать с причастных. Самая жесть это файловые имена, тут отдельное спасибо авторам-вендузятникам (привет 7zip и unrar опять же).

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено НяшМяш , 22-Мрт-25 23:44 
> И вообще, вместо баша/sh нужен нормальный скриптовый язык вроде питона

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 00:22 
> Чел, в Pagure тупо все 4 CVE починены в питон коде...

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 00:43 
> Три из которых - взаимодействие с башпортянками или вызовы через передачу параметров?

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

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

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

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 01:07 
Можно ещё не запускать всякий шлак от рута и делить программы на пользователей. Даже 32 тысяч уникальных айдишников на серваке должно хватить. Но девопсы по большей частью заняты (уже лет 20 точно) джейсоноукладкой, а не настройкой системы под свои нужды.

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

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

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Ivan_83 , 23-Мрт-25 07:55 
В shell script это обычно не проблема ибо запускающий делает это для себя, а не как обработчик чего то полученного извне.

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено bdrbt , 23-Мрт-25 09:54 
Ну так-то "нормальный скриптовый язык" процентов на 20-пюре и на 80-обвязки над этими самыми консольными утилитами, но... вобщем кто-то об этом не знает.

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 14:45 
>И вообще, вместо баша/sh нужен нормальный скриптовый язык вроде питона

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


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

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 15:05 
>вместо баша/sh нужен нормальный скриптовый язык вроде питона

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 00:11 
> http://pagure.local:5000/your-repository/issue/raw/../../../...

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 00:27 
> Выполнения кода с правами пользователя git на сервере Pagure позволяет
> контролировать всё содержимое репозиториев с пакетами.

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 00:52 
Мне больше интересно, это сколько ж они кода написали, что никто это даже проверять не стал?

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 01:13 
Да просто все в грабу эту безопасность видали!!! Пока не доплатят и в ТЗ не прибьют гвоздями даже вялого юнит теста никто не напишет, какой-там аудит. Партия сказала ннада! Кам-самол запилил и послал задачу нах. Точка на деревьях почки.
Вас поломали? Ой какая жалость. Нада была на расте! Там ваааще нече не надо, просто сэйфти как в сейфе

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 15:56 
> Мне больше интересно, это сколько ж они кода написали, что никто это
> даже проверять не стал?

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

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено User , 23-Мрт-25 16:37 
Как вы думаете, найду ли я что-нибудь, связанное с "relative path traversal" в исполнении с, perl, php, Java etc сеньоров на mitre с одного запроса, или потребуется аж целых джва?
"Классичность" баги как бы намекает, что дело тут не в бобине...

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 01:06 
Вот нормальные уязвимости такие, легко и сочно, и можно пол мира обгадить ломаными пакетами, без какого-либо палева. А то там буфер заполни цифры какие-то

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено пох. , 24-Мрт-25 18:01 
ну какой весьмир? Подкроватные серверы на федорином горе только. Зачем?!

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 01:46 
Надо было landlock использовать.

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Ilya Indigo , 23-Мрт-25 04:06 
https://www.suse.com/c/statement-on-cve-2024-22033-compromis.../
Для openSUSE OBS далеко не настолько всё страшно, как описано в новости.

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 08:23 
Многие думают. что после нахождения уязвимости все будут взломаны. Такая чушь несусветная.
Кому это надо, тратить время на эксплоит, который заработает или не заработает - не знаем.
А компании наворуют данные и так.. через бэкдоры

"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено Аноним , 23-Мрт-25 08:33 
> компании наворуют данные и так.. через бэкдоры

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


"Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов..."
Отправлено нах. , 24-Мрт-25 12:58 
Собственно, да:
https://fenrisk.com/open-build-service - первоисточник с выпиленным видео ниочем.

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

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

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

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