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

Исходное сообщение
"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."

Отправлено opennews , 05-Июн-18 23:16 
Раскрыты (https://snyk.io/blog/zip-slip-vulnerability/) сведения об уязвимости Zip Slip (https://snyk.io/research/zip-slip-vulnerability), которая позволяет переписать или сохранить файлы за пределами базового каталога при распаковке архивов с использованием функций распаковки, предоставляемых различными библиотеками на Java, JavaScript, .NET и Go. В анонсе достаточно много PR и заметно преувеличена степень новизны проблемы и степени её опасности, в то время как уязвимость по сути повторяет проблемы, устранённые (https://nvd.nist.gov/vuln/detail/CVE-2001-1268) 10-20 лет назад в штатных утилитах распаковки архивов, перенося их на современные фреймворки.


Суть уязвимости в том, что можно подготовить модифицированный архив  (tar, jar, war, cpio, apk, rar или 7z), в котором подставить в путь сохранённого в архиве файла символы "../../". При распаковке данного файла с использованием уязвимых библиотек из-за отсутствия проверки относительного пути файл будет сохранён в каталог вне базового каталога распаковки архива. В большинстве случаев уязвимость в библиотеках сводится к тому, что они допускают вывод путей с "../../" при выполнении перебора содержимого модифицированного архива. Сама уязвимость касается больше конечных приложений, в которых подобные пути не проверяются перед записью файлов.

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


Среди библиотек и приложений, в которых подтверждена проблема, упоминаются Java-компоненты  zip4j, zt-zip и Plexus-archiver (исправлено в 3.6.0), JavaScript-модули Unzipper (0.8.13) и Adm-zip (0.4.9), .NET-библиотеки   DotNetZip.Semverd (библиотека распаковки из .NET Core не подвержена проблеме), SharpZipLib и SharpCompress (0.21.0), mholt/archiver на языке Go (патч (https://github.com/mholt/archiver/commit/e4ef56d48eb029648b0...)).  Уязвимых библиотек на Python и Ruby не обнаружено так как в библиотеках Python аналогичные проблемы были устранены в 2014 году, а в библиотеках Ruby archive-tar-minitar,  minitar и rubyzip в 2016 году (https://github.com/halostatue/minitar/issues/16). В Oracle java.util.zip и Apache commons-compress  в реализации API уязвимостей нет, но были некорректные примеры в документации.


Среди продуктов, в которых использовались уязвимые библиотеки, отмечаются (https://github.com/snyk/zip-slip-vulnerability) пакетный менеджер npm,
платформа Google Cloud, продукты Oracle, Amazon CodePipeline, AWS Toolkit for Eclipse, IBM DataPower, Alibaba JStorm, Twitter Heron, Apache Storm, Apache Hadoop,
Apache Ant, Apache Maven, Apache Hive, HP Fortify Cloud Scan Jenkins Plugin, OWASP     DependencyCheck. Примечательно, что в 2015 году аналогичная проблема при обработке zip-файлов в SwiftKey применялась (https://www.cvedetails.com/cve/CVE-2015-4641/) для получения root-доступа к смартфонам  Samsung Galaxy S4, S4 Mini, S5 и S6.


URL: https://snyk.io/blog/zip-slip-vulnerability/
Новость: https://www.opennet.ru/opennews/art.shtml?num=48723


Содержание

Сообщения в этом обсуждении
"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 05-Июн-18 23:16 
>SharpZipLib
>SharpCompress

Как у меня подгорает ... Ведь я глубоко копался в их исходниках (правда фиксил баги, меня затрагивающие), а уязвимость проморгал.


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 05-Июн-18 23:22 
Чего подгорает-то? Пофиксят ж всё равно.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено А , 06-Июн-18 07:00 
Так ты и русский язык не изучил, хотя пользуешься. "Подгорание" посмотри в словаре, фиксик!

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 06-Июн-18 11:11 
"фиксик" посмотри в словаре, зануда!

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 05-Июн-18 23:38 
Еще одно подтверждение, что платфорорм одной корпорации (C#,Java,go) стоит избегать.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Annoynymous , 05-Июн-18 23:55 
Ну да, отсутствие проверки путей, оно в платформе заложено, архитекторами.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 06-Июн-18 00:14 
>  Еще одно подтверждение, что платфорорм одной корпорации (C#,Java,go) стоит избегать.

Вообще не то.

Вчитайся:

> В анонсе достаточно много PR и заметно преувеличена степень новизны проблемы и степени её опасности, в то время как уязвимость по сути повторяет проблемы, устранённые 10-20 лет назад в штатных утилитах распаковки архивов, перенося их на современные фреймворки.

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

Вы конечно можете можете мне возразить на этот тезис, но мне плевать на вас. Мне бы очень хотелось чтобы люди обдумывающие читаемые тезисы всё-таки призадумались над тем что может все-таки стоит осилить более комплексные задачи, а не тратить серое вещество на изучение очередного ненужного ЯП или очередного API, только потому что какой-то там Apple или Google его анонсировали. Надо научитсья ломать хребет сильными мирам сего с их хомячками-рабами, тем более что IT-стезя это все-таки наше! Ведь мы уже почти просрaли Интернет..


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено AnonPlus , 06-Июн-18 01:13 
Вы, конечно, можете плевать на нас, но нам плевать на то, что вам плевать на нас.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Плюсую , 06-Июн-18 11:34 
Плюсую.
Совсем не понятно, почему заново изобретают велосипед, вместо того, чтобы ездить на готовом и удобном. Опять и опять наступают на одни и те же грабли.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Илья , 06-Июн-18 08:33 
это ж вроде продукты трех разных корпораций

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Клыкастый , 06-Июн-18 11:06 
Это снаружи. Но автор знает сильно больше, чем простые смертные...

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено qrKot , 06-Июн-18 09:30 
Интересно, что же это за мегакорпорация, которая объединяет платформы Microsoft C#, Oracle Java и Google Go...

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Клыкастый , 06-Июн-18 11:07 
> Интересно, что же это за мегакорпорация, которая объединяет платформы Microsoft C#, Oracle
> Java и Google Go...

ЗАО "Корпорация З.Л.А."


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Фуррь , 06-Июн-18 11:17 
>Интересно, что же это за мегакорпорация, которая объединяет платформы Microsoft C#, Oracle Java и Google Go...

Reptiloids Global Inc.


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено ОнАнон , 06-Июн-18 14:56 
А если взять инициалы компаний, неплохо собирается OMG.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено anonymous , 08-Июн-18 06:43 
+100500

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 11-Июн-18 12:13 
Вы не поверите: https://www.omg.org/

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено A.Stahl , 06-Июн-18 01:24 
>при распаковке архивов с использованием функций распаковки, предоставляемых различными библиотеками на Java, JavaScript, .NET и Go

Ок


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 06-Июн-18 20:19 
То есть консольные распаковщики , написанные на человеческих языках людьми для людей, не подвержены.
Ну ок.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Anonymoustus , 06-Июн-18 05:37 
Каждое поколение хомячья вновь и вновь повторяет одни и те же ошибки, потому что отвергает уже сделанное предыдущими поколениями. Видимо, это неизлечимо без смены воспитательной и образовательной парадигмы.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено КО , 06-Июн-18 08:41 
>Каждое поколение хомячья вновь и вновь повторяет одни и те же ошибки

В реальности никакой ошибки в программах нет. Они делают заявленный функционал.
Если пользователю Иванов разрешено писать в каталог /home/petrov, то он должен туда иметь право писать хоть так, хоть /home/ivanov/../petrov. Если у него таких прав нет, то и не будет.
Другое дело, что если приложение работает с внешними данными, то и должно делать изоляцию всех операций ввода-вывода (ака "песочница") по реальному пути. Раньше к этому относились проще. :)


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Anonymoustus , 06-Июн-18 11:08 
Прекрасная философия первозданного юникса была разработана не для дeбилoв, а для людей, чётко и ясно осознающих каждое своё действие и его последствия.


> Если пользователю Иванов разрешено писать в каталог /home/petrov, то он должен туда иметь право писать хоть так, хоть /home/ivanov/../petrov. Если у него таких прав нет, то и не будет.

Эм… Кто по умолчанию хозяин^W владелец каталогов в /home?


А вот про модно-молодёжный «функционал» — верю!

https://toster.ru/q/14928


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 06-Июн-18 11:28 
> туда

это уже не "туда"


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 06-Июн-18 10:22 
> Каждое поколение хомячья вновь и вновь повторяет одни и те же ошибки, потому что отвергает уже сделанное предыдущими поколениями. Видимо, это неизлечимо без смены воспитательной и образовательной парадигмы.

"Эта молодёжь растленна до глубины души. Молодые люди злокозненны и нерадивы. Никогда они не будут походить на молодёжь былых времен. Младое поколение сегодняшнего дня не сумеет сохранить нашу культуру."


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Anonymoustus , 06-Июн-18 11:13 
Намёк понятен, но всё несколько проще. Есть базовые вещи — вроде букв алфавита. Их надо знать до того, как начинаешь писать по слогам и составлять слова в предложения. Поколение Z буковок не знает, не умеет, потому что «устарело». Изложение причин этой фатальной проблемы выходит за уровень интеллектуальных способностей анонимов этого форума, поэтому я не считаю целесообразным перевод разговора в такое русло.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено trolleybus , 13-Июн-18 14:33 
> Поколение Z буковок не знает, не умеет, потому что «устарело».

Поколение Z еще знает, а вот следующее точно не будет - все буковки закончились до них


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Anonymoustus , 13-Июн-18 14:53 
>> Поколение Z буковок не знает, не умеет, потому что «устарело».
> Поколение Z еще знает, а вот следующее точно не будет - все
> буковки закончились до них

Да я тогда уж совсем старенький буду — так что пох.


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Kekistani , 06-Июн-18 11:44 
А вот про Rust ни слова. Это только говорит что за ним светлое будущее ибо там токого не может быть по определению.

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 06-Июн-18 14:05 
> А вот про Rust ни слова. Это только говорит что за ним светлое будущее ибо там токого не может быть по определению.

Верно. borrow checker увидет, что у "../../" не проставлен lifetime и программа не соберётся.


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 06-Июн-18 20:45 
> В анонсе достаточно много PR

Достаточно много связей с общественностью? Что за дичь? Редактор, не употребляй слова, значения которых не знаешь


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 08-Июн-18 08:36 
>> В анонсе достаточно много PR
> Достаточно много связей с общественностью? Что за дичь? Редактор, не употребляй слова,
> значения которых не знаешь

Вы бы хоть сами в словарь заглянули и почитали в каких ситуациях употребляется слово "пиар".

https://dic.academic.ru/dic.nsf/es/85473/%D0%9F�...

"PR —  Практика создания и внедрения в сознание людей привлекательного образа кого-, чего-л.... Деятельность, направленная на формирование общественного мнения, имиджа предпринимателя или его фирмы, продвижение бизнес-продукта предпринимателя, «раскрутка» бренда."


"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Аноним , 10-Июн-18 10:26 
Как-то дико такое читать. С первых же строк по распаковку вне текущего каталога в голове всплыло ../../. А ведь я даже не погромист и не одмин и вообще не айтишник. Они там вообще свои велосипеты хоть как-то тестируют?

"Уязвимость Zip Slip, затрагивающая библиотеки для распаковки..."
Отправлено Старый одмин , 11-Июн-18 01:11 
Это все потому что нужно иметь только одну рассово верную библиотеку для всех фреймворков (на C).
А то понаехали тут...