The OpenNET Project / Index page

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



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

"Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за пределы базового каталога"  +/
Сообщение от opennews (?), 18-Авг-25, 10:52 
В NPM-пакете tar-fs выявлена...

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

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

Оглавление

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

2. Сообщение от Аноним (2), 18-Авг-25, 11:07   +1 +/
А это нормально, когда уязвимость в  NPM, а в качестве примера код на python ?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #13, #48

3. Сообщение от Аноним (3), 18-Авг-25, 11:09   +16 +/
Нужен язык для безопасной работы с символическими ссылками.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #14, #27, #61

4. Сообщение от Аноним (4), 18-Авг-25, 11:18   –5 +/
Почему программисты тупо не умеют работать с ../../ ? Что сложного, а?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #6, #39

5. Сообщение от Аноним (35), 18-Авг-25, 11:18   +4 +/
Ты тоже не умеешь
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

6. Сообщение от Аноним (6), 18-Авг-25, 11:20   –4 +/
Важное уточнение - программисты яваскрипт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #23

9. Сообщение от Аноним (9), 18-Авг-25, 11:41   –2 +/
Интернет система , ой у нас уязвимость мы вышли за пределы интернета. Собираем на мак с помощью linux /.../.../.../ , ой а чё это мы собираем linux библиотеки на мак , опять вышли за пределы эипла. Вот на что похожи эти новости
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15

10. Сообщение от Аноним (10), 18-Авг-25, 11:45   +8 +/
код, подготавливающий проблемный файл, может быть на любом языке
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16, #34, #40, #42

13. Сообщение от Аноним (13), 18-Авг-25, 12:15   –4 +/
Эт че, в NPM опять что то корявое выложили?
Они там концептуально не обучаемые походу, эти NPM-щики.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #28

14. Сообщение от Аноним (13), 18-Авг-25, 12:16   +/
как насчет RUST?
там у них есть unsafe!
есть что возразить?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #17, #22, #32, #65

15. Сообщение от Аноним (13), 18-Авг-25, 12:19   +4 +/
Есть хороший лайфхак по генерированию "новостей" - смотришь в NPM репах с чем там они на этой неделе обосрались, и у тебя куча контента.
Если не прокатило - вспоминаем, что в NPM теперь можно подключать сторонние репы, и далее переходим к пункту 1.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

16. Сообщение от Аноним (16), 18-Авг-25, 12:29   +/
Я могу положить внутрь архива символическую ссылку с путём "nop" и содержимым ".", а следом за ней ещё одну символическую ссылку "yousuckatparsingsymlinks" с содержимым "nop/nop/nop/..". Всё, теперь следующий файл кладём с путём "yousuckatparsingsymlinks/outoffolder", и при распаковке он окажется снаружи папки, куда ты распаковывал архив. Проблема элементарная - забыли в режиме ограничения пути распаковки (по дефолту tar позволяет любые пути в нём записать, что удобно для тех же обновлений системы) разыменовывать содержимое симлинков и проверять уже реальный путь, куда они будут указывать. Тут даже парсер переписывать не надо - только readlink делать при встрече любой симлинки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #19, #46

17. Сообщение от Аноним (17), 18-Авг-25, 12:33   +1 +/
Так а кто там проверяет символические ссылки, чекер боровов проверяет?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #45

19. Сообщение от Аноним (16), 18-Авг-25, 12:38   +/
Я так прикинул, в симлинках же можно любой путь указать, в том числе абсолютный "/tmp" или "/etc". Если не проверяется реальный путь с подставлением содержимого симлинки, то наверное не проверяется и то, что в симлинке лежит абсолютное перенаправление, которым можно сразу попасть в нужную часть FS.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

21. Сообщение от Анон1110м (?), 18-Авг-25, 12:49   –1 +/
Вот почему я предпочитаю ACE.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #24, #29, #33, #36

22. Сообщение от Аноним (22), 18-Авг-25, 12:55   +/
Надо запрос разработчикам запилить. Что бы добавили в язык безопасность работы с символическими ссылками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

23. Сообщение от Аноним (23), 18-Авг-25, 13:01   +1 +/
Не знал, что 7-zip написан на яваскрипт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #72

24. Сообщение от Аноним (-), 18-Авг-25, 13:09   +1 +/
Что такое ACE?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

27. Сообщение от Аноним (27), 18-Авг-25, 13:22   +/
chroot
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

28. Сообщение от Аноним (28), 18-Авг-25, 13:48   +/
Косяки с разбором путей и симлинков во всех языках встречаются, особенно часто в либах на Cи, NPM тут не причем. Кстати, прям в этой же новости - в 7zip тоже npm виноват?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

29. Сообщение от Аноним (29), 18-Авг-25, 13:48   +1 +/
тетя Ася плохого не посоветует
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

32. Сообщение от Аноним (32), 18-Авг-25, 14:08   +/
в расте ссылки проверятся на этапе компиляции с zero-cost ценой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #35

33. Сообщение от dannyD (?), 18-Авг-25, 14:21   +/
>>Вот почему я предпочитаю ACE.

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

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

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

34. Сообщение от ptr (ok), 18-Авг-25, 14:55   +/
chroot
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

35. Сообщение от Аноним (35), 18-Авг-25, 14:58   –2 +/
Ну дык... Плюсовый llvm же
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

36. Сообщение от Perlovka (ok), 18-Авг-25, 15:03   +2 +/
Настоящие гигачады используют ARJ
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #37

37. Сообщение от Аноним (28), 18-Авг-25, 15:16   +1 +/
А что не ARC или LHA?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #50

39. Сообщение от Аноним (39), 18-Авг-25, 16:05   +3 +/
в смысле не умеют, там же все корректно обрабатывается и файлик кладется ровно по тому пути по которому указали, в чем проблема, я никак не пойму :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

40. Сообщение от Аноним (39), 18-Авг-25, 16:08   +/
> Может вопрос-то просто в корявой обработке путей архиваторами?

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

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

42. Сообщение от Аноним (42), 18-Авг-25, 16:48   +1 +/
> разрешено ли вообще архиватору распаковывать файлы куда угодно, кроме того каталога в котором лежит файл

nc 192.0.2.1 8080 | 7z …

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

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

45. Сообщение от Анонимъemail (?), 18-Авг-25, 17:41   –2 +/
В std::fs есть штатный нормализатор путей, ресольвящий ссылки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #52, #71, #73

46. Сообщение от Смузихлеб забывший пароль (?), 18-Авг-25, 17:42   +1 +/
> по дефолту tar позволяет любые пути в нём записать,
> что удобно для тех же обновлений системы

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

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

48. Сообщение от попамира (?), 18-Авг-25, 18:55   –1 +/
Так питон это как npm, только работает лучше. Если бы в мире не было столько фронт раззработчиков ноджс и не появился бы никогда, но природа берёт своё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #74

50. Сообщение от Аноним (50), 18-Авг-25, 19:29   +1 +/
Только AIN, только хардкор!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #56

52. Сообщение от Аноним (52), 18-Авг-25, 19:39   +/
И?...  Есть - не значит: обязано быть использовано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #67

55. Сообщение от Аноним (52), 18-Авг-25, 19:50   +/
"Это же линукс..."
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

56. Сообщение от Аноним (52), 18-Авг-25, 19:53   +/
Хардкор это кю ("*.Q")
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #62, #63, #70

58. Сообщение от Аноним (52), 18-Авг-25, 20:00   +/
В WinRAR схожую дыру как то наблюдал, не знаю тоже через файловые ссылки или же прямо задав что то вроде "c:\windows\...", но было как то.
Ответить | Правка | Наверх | Cообщить модератору

60. Сообщение от Аноним (-), 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
...

Какой-то странный ноджыэс.
Ответить | Правка | Наверх | Cообщить модератору

61. Сообщение от cheburnator9000 (ok), 18-Авг-25, 20:51   +/
Не нужен правильный язык, программисты и на Rust допустят такие ошибки.
Нужно проверять в каком каталоге создается каждый файл/каталог.
Архив по сути распаковывается только в указанный каталог.
Если пользователь указал /usr значит это и будет верхний каталог распаковки.

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

62. Сообщение от Tron is Whistling (?), 18-Авг-25, 22:03   +2 +/
.Q вряд ли кто-то застал, а вот .ZOO уже должны помнить
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

63. Сообщение от Tron is Whistling (?), 18-Авг-25, 22:03   +/
Хотя конечно да, первый раз встретить файл .EQE - было интересно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

64. Сообщение от Аноним (64), 18-Авг-25, 22:48   –1 +/
На линуксе нет программ, которые не используют при установке sudo.
Б - безопасность!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #66, #69

65. Сообщение от fedor (??), 18-Авг-25, 23:19   +/
на низкую культуру производства ни один инструмент повлиять не в силах.
в норм проектах будут делать статический аудит пакетов, остальные хорошее всё равно не напишут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

66. Сообщение от SubGun (ok), 19-Авг-25, 07:19   +/
Справедливости ради, пакетные менеджеры как раз не используют sudo для установки пакетов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64

67. Сообщение от User (??), 19-Авг-25, 07:51    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

68. Сообщение от Аноним (-), 19-Авг-25, 08:41   +/
Старая грабля. По прежнему работает безупречно, smashed_heads++.
Ответить | Правка | Наверх | Cообщить модератору

69. Сообщение от Аноним (-), 19-Авг-25, 08:43   +/
> На линуксе нет программ, которые не используют при установке sudo.

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

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

70. Сообщение от Аноним (-), 19-Авг-25, 08:45   +/
> Хардкор это кю ("*.Q")

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

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

71. Сообщение от Аноним (-), 19-Авг-25, 08:50   –1 +/
> В std::fs есть штатный нормализатор путей, ресольвящий ссылки.

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

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

72. Сообщение от Аноним (-), 19-Авг-25, 08:54   +2 +/
> Не знал, что 7-zip написан на яваскрипт.

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

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

73. Сообщение от Аноним (28), 19-Авг-25, 09:33   +/
Так и в nodejs тоже есть, но тут CVE в другом - архив был сделан специально так, чтобы выйти за пределы папки распаковки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

74. Сообщение от Аноним (-), 19-Авг-25, 10:52   +/
> Так питон это как npm, только работает лучше.

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

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

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

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

75. Сообщение от Аноним (75), 19-Авг-25, 11:19   +/
Кажется только недавно точно такая же уязвимость была в WinRAR?
Ответить | Правка | Наверх | Cообщить модератору


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

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




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

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