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

Исходное сообщение
"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за пределы базового каталога"

Отправлено opennews , 18-Авг-25 10:52 
В NPM-пакете tar-fs выявлена...

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


Содержание

Сообщения в этом обсуждении
"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 11:07 
А это нормально, когда уязвимость в  NPM, а в качестве примера код на python ?

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 11:45 
код, подготавливающий проблемный файл, может быть на любом языке

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 12:15 
Эт че, в NPM опять что то корявое выложили?
Они там концептуально не обучаемые походу, эти NPM-щики.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 13:48 
Косяки с разбором путей и симлинков во всех языках встречаются, особенно часто в либах на Cи, NPM тут не причем. Кстати, прям в этой же новости - в 7zip тоже npm виноват?

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено попамира , 18-Авг-25 18:55 
Так питон это как npm, только работает лучше. Если бы в мире не было столько фронт раззработчиков ноджс и не появился бы никогда, но природа берёт своё.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 19-Авг-25 10:52 
> Так питон это как npm, только работает лучше.

В смысле, тормозит в разы злее, память жрет и совместимость все время ломают?

> Если бы в мире не было столько фронт раззработчиков ноджс и не появился бы
> никогда, но природа берёт своё.

Питон вообще ни для чего нормально не годится. Хотя, вот, макеты программ нормально делать. Чтобы потом переписать на более приличном - если идея не совсем отстой.


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 11:09 
Нужен язык для безопасной работы с символическими ссылками.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 12:16 
как насчет RUST?
там у них есть unsafe!
есть что возразить?

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 12:33 
Так а кто там проверяет символические ссылки, чекер боровов проверяет?

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Анонимъ , 18-Авг-25 17:41 
В std::fs есть штатный нормализатор путей, ресольвящий ссылки.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 19:39 
И?...  Есть - не значит: обязано быть использовано.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено User , 19-Авг-25 07:51 
Дедушко пути конкатенацией строк собирал - и я буду, чай не хипстор какой! Понапредумывают тут... всякого - вон, колесу 10000 лет и все еще круглое...

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 19-Авг-25 08:50 
> В std::fs есть штатный нормализатор путей, ресольвящий ссылки.

А в нем CVE нет? Кто-то проверял? А то прошлый раз CVE в стдлибе хpyстa как раз и был, правда, только для винды. Но все равно забавно.


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 19-Авг-25 09:33 
Так и в nodejs тоже есть, но тут CVE в другом - архив был сделан специально так, чтобы выйти за пределы папки распаковки.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 12:55 
Надо запрос разработчикам запилить. Что бы добавили в язык безопасность работы с символическими ссылками.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 14:08 
в расте ссылки проверятся на этапе компиляции с zero-cost ценой.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 14:58 
Ну дык... Плюсовый llvm же

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено fedor , 18-Авг-25 23:19 
на низкую культуру производства ни один инструмент повлиять не в силах.
в норм проектах будут делать статический аудит пакетов, остальные хорошее всё равно не напишут.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 13:22 
chroot

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено cheburnator9000 , 18-Авг-25 20:51 
Не нужен правильный язык, программисты и на Rust допустят такие ошибки.
Нужно проверять в каком каталоге создается каждый файл/каталог.
Архив по сути распаковывается только в указанный каталог.
Если пользователь указал /usr значит это и будет верхний каталог распаковки.


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 11:18 
Почему программисты тупо не умеют работать с ../../ ? Что сложного, а?

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 11:18 
Ты тоже не умеешь

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 11:20 
Важное уточнение - программисты яваскрипт.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 13:01 
Не знал, что 7-zip написан на яваскрипт.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 19-Авг-25 08:54 
> Не знал, что 7-zip написан на яваскрипт.

Вот такой вот хреновый яваскрипт :)


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 16:05 
в смысле не умеют, там же все корректно обрабатывается и файлик кладется ровно по тому пути по которому указали, в чем проблема, я никак не пойму :)

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 11:41 
Интернет система , ой у нас уязвимость мы вышли за пределы интернета. Собираем на мак с помощью linux /.../.../.../ , ой а чё это мы собираем linux библиотеки на мак , опять вышли за пределы эипла. Вот на что похожи эти новости

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 12:19 
Есть хороший лайфхак по генерированию "новостей" - смотришь в NPM репах с чем там они на этой неделе обосрались, и у тебя куча контента.
Если не прокатило - вспоминаем, что в NPM теперь можно подключать сторонние репы, и далее переходим к пункту 1.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 12:13 
Господа, так может следует сначала просто определиться, разрешено ли вообще архиватору распаковывать файлы куда угодно, кроме того каталога в котором лежит файл (естественно при наличии соотвествующих прав доступа в файловой системе). А именно это я прочитал в новости - "в любые части ФС, не ограниченные каталогом, в который осуществляется распаковка"

Например достопочтенный гуевый винрар (как и 7zip), позволяют пользователю вручную указать директорию для распаковки (пока не учитываем "специально подготовленные архивы" с кривыми путями) - вот это хорошо или плохо?
Может вопрос-то просто в корявой обработке путей архиваторами?


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 12:29 
Я могу положить внутрь архива символическую ссылку с путём "nop" и содержимым ".", а следом за ней ещё одну символическую ссылку "yousuckatparsingsymlinks" с содержимым "nop/nop/nop/..". Всё, теперь следующий файл кладём с путём "yousuckatparsingsymlinks/outoffolder", и при распаковке он окажется снаружи папки, куда ты распаковывал архив. Проблема элементарная - забыли в режиме ограничения пути распаковки (по дефолту tar позволяет любые пути в нём записать, что удобно для тех же обновлений системы) разыменовывать содержимое симлинков и проверять уже реальный путь, куда они будут указывать. Тут даже парсер переписывать не надо - только readlink делать при встрече любой симлинки.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 12:38 
Я так прикинул, в симлинках же можно любой путь указать, в том числе абсолютный "/tmp" или "/etc". Если не проверяется реальный путь с подставлением содержимого симлинки, то наверное не проверяется и то, что в симлинке лежит абсолютное перенаправление, которым можно сразу попасть в нужную часть FS.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Смузихлеб забывший пароль , 18-Авг-25 17:42 
> по дефолту tar позволяет любые пути в нём записать,
> что удобно для тех же обновлений системы

Какая-то очень странная фича для штуковины, основная суть которой - гору разрозненного барахла объединять в один файл для более шустрого и качественного дальнейшего сжатия


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 19:50 
"Это же линукс..."

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено ptr , 18-Авг-25 14:55 
chroot

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 16:08 
> Может вопрос-то просто в корявой обработке путей архиваторами?

почему в корявой? передал путь в функцию file_move (условно из tmp в указанный путь) и все, какие притензии к архиватору?


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 16:48 
> разрешено ли вообще архиватору распаковывать файлы куда угодно, кроме того каталога в котором лежит файл

nc 192.0.2.1 8080 | 7z …

В каком каталоге лежит распаковываемый файл?


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Анон1110м , 18-Авг-25 12:49 
Вот почему я предпочитаю ACE.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 13:09 
Что такое ACE?

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 13:48 
тетя Ася плохого не посоветует

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено dannyD , 18-Авг-25 14:21 
>>Вот почему я предпочитаю ACE.

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

но и ногда из лесу приходится брать диких животных.


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Perlovka , 18-Авг-25 15:03 
Настоящие гигачады используют ARJ

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 15:16 
А что не ARC или LHA?

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 19:29 
Только AIN, только хардкор!

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 19:53 
Хардкор это кю ("*.Q")

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Tron is Whistling , 18-Авг-25 22:03 
.Q вряд ли кто-то застал, а вот .ZOO уже должны помнить

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Tron is Whistling , 18-Авг-25 22:03 
Хотя конечно да, первый раз встретить файл .EQE - было интересно.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 19-Авг-25 08:45 
> Хардкор это кю ("*.Q")

Тю, это для дилетантов. Вот попробуй .mpq без встроенного (filelist) вообще распаковать. Сразу распаковка становится таким интересным занятием :)


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 20:00 
В WinRAR схожую дыру как то наблюдал, не знаю тоже через файловые ссылки или же прямо задав что то вроде "c:\windows\...", но было как то.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 20:02 

import tarfile
import io
with tarfile.open("poc.tar", mode="x") as tar:
    root = tarfile.TarInfo("root")
    root.linkname = ("noop/" * 15) + ("../" * 15)
    root.type = tarfile.SYMTYPE
...

Какой-то странный ноджыэс.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 18-Авг-25 22:48 
На линуксе нет программ, которые не используют при установке sudo.
Б - безопасность!

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено SubGun , 19-Авг-25 07:19 
Справедливости ради, пакетные менеджеры как раз не используют sudo для установки пакетов.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 19-Авг-25 08:43 
> На линуксе нет программ, которые не используют при установке sudo.

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


"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 19-Авг-25 08:41 
Старая грабля. По прежнему работает безупречно, smashed_heads++.

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за п..."
Отправлено Аноним , 19-Авг-25 11:19 
Кажется только недавно точно такая же уязвимость была в WinRAR?