The OpenNET Project / Index page

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

Уязвимости в cpio и libarchive

06.11.2019 20:22

Спустя четыре года с момента прошлого выпуска опубликован релиз утилиты для архивирования файлов cpio 2.13, применяемой в пакетах RPM и в initramfs. В новом выпуске устранены три уязвимости:

  • CVE-2015-1197 - позволяет перезаписать файлы за пределами каталога, в который раскрывается архив.
  • CVE-2016-2037 - приводит к записи в область вне выделенного буфера при обработке специально оформленных файлов cpio;
  • CVE-2019-14866 - из-за недостаточной проверки заголовка TAR-файла позволяет при создании архива в формате TAR из списка файлов, в случае присутствия в этом списке специально оформленного очень большого tar-архива, создать результирующий архив, включающий файлы, распакованные из добавляемого tar-архива с неверными правами доступа.
    
        tar cf suffix.tar AUTHORS
        dd if=/dev/zero seek=16G bs=1 count=0 of=suffix.tar
        echo suffix.tar | cpio -H tar -o | tar tvf -
       
        -rw-r--r-- 1000/1000       0 2019-08-30 16:40 suffix.tar
        -rw-r--r-- thomas/thomas 161 2019-08-30 16:40 AUTHORS
    

Кроме того, в библиотеке Libarchive, предоставляющей средства для работы с различными форматами архивов и сжатых файлов, выявлена уязвимость (CVE-2019-18408), которая приводит к обращению к уже освобождённому блоку памяти (use-after-free) при обработке специально оформленных файлов в формате RAR. Проблема потенциально может привести к запуску кода злоумышленника, но возможность эксплуатации рассматривается как маловероятная (уровень опасности выставлен 4.4 из 10, т.е. проблема признана неопасной). Проблема без лишней огласки устранена в выпуске 3.4.0.

  1. Главная ссылка к новости (https://www.mail-archive.com/i...)
  2. OpenNews: Во FreeBSD устранены уязвимости в libarchive, cpio и прослойках для совместимости с Linux и 4.3BSD
  3. OpenNews: Серия уязвимостей в Libarchive
  4. OpenNews: Уязвимость Zip Slip, затрагивающая библиотеки для распаковки архивов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51820-cpio
Ключевые слова: cpio, libarchive
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (27) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 20:36, 06/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Никто не удивлён (привет любителям фряхи).
     
     
  • 2.2, Аноним (1), 20:43, 06/11/2019 [^] [^^] [^^^] [ответить]  
  • –9 +/
    А кстати вспомнил, cmake зависит от libarchive. Больше она особо ничем не полезна.

    Про cpio давно не слышал, она умеет в дедупликацию? Я хочу дедуплицировать данные в тарболах, но мне почему-то предлагают только платную онлайн дедупликацию тарболов.

     
     
     
    Часть нити удалена модератором

  • 4.5, Аноним (1), 20:53, 06/11/2019 [ответить]  
  • –1 +/
    Ну я пробовал использовать её, не понравилось. Взял всякие libzip и написал немного лапшекода к ним, куда лучше libarchive в которой cve за cve (даже при том, что она никому не нужна). А про дедупликацию это так, о наболевшем. Может кто-нибудь поделится опытом.
     
     
  • 5.10, Аноним (10), 04:35, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Для дедупликации и сжатия заоодно, можно использовать zbackup
    Оно работает как фильтр. В сторону zbackup скармливается tar архив. Если надо распаковать, на выходе zbackup дает тоже tar.
     
     
  • 6.19, Аноним (1), 00:28, 08/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не уверен, как это сравнить адекватно. Тарбол 3.6гб, 7z на максимальном сжатии даёт 1.8 гб, сабж - 1.5 гб но при этом это какая-то куча мутных файлов сжатая в непонятной степени (не настраивается?), манов нет, справки по-сути тоже никакой.
     
     
  • 7.24, Аноним84701 (ok), 15:30, 08/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > это какая-то куча мутных файлов

    Это использование FS, вместо прикрученной сбоку изолентой DB с индексами кусков и сборки всего в один большой, красивый файл.

    > сжатая в непонятной степени (не настраивается?),
    > манов нет, справки по-сути тоже никакой.

    zbackup config edit <repo>



    chunk {
      max_size: 65536
    }
    bundle {
      max_payload_size: 2097152
      compression_method: "lzma"
    }
    lzma {
      compression_level: 6
    }


     
  • 6.21, Аноним (1), 02:13, 08/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Borgbackup намного удобней и приятней, с lzma9 репа 1.4гб, но это не важно, можно спокойно использовать zstd с любым сжатием и экономить по сравнению с любым архиватором, а вот дедуплицированный тарбол мне тут тоже не дали, всё не то, export-tar даёт такой же тарбол в 3.6 гб (без сжатия). На всякий случай проверил:

    дефолтный tgz, он даёт файл 2.2гб (напомню, 7z весит 1.8гб),
    xz-9 даёт 1.9гб (очень медленно)

    дополнительные эксперименты:

    borg без сжатия, объём репы 2.1гб (гб=гибибайты, кстати)

    Time (start): Fri, 2019-11-08 01:54:29
    Time (end):   Fri, 2019-11-08 01:55:16
    Duration: 47.37 seconds
    Number of files: 25138
    Utilization of max. archive size: 0%
    ------------------------------------------------------------------------------
                           Original size      Compressed size    Deduplicated size
    This archive:                3.83 GB              3.83 GB              2.24 GB
    All archives:                3.83 GB              3.83 GB              2.24 GB

                           Unique chunks         Total chunks
    Chunk index:                    8875                25834
    ------------------------------------------------------------------------------

    Если эту репу сжать в 7z (lzma9) получается файл 1.4гб (если репу сжимать боргом то же самое выходит), дефолтный zstd для сравнения (троечка что ли) 1.5гб. Файлы по большей части бинарные, да. И никто их не может дедуплицировать мне.

     
     
  • 7.22, Shalik (?), 05:40, 08/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если для бэкапов просто - duplicacy.
     
     
  • 8.23, Аноним (1), 09:34, 08/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Оно на python2 В любом случае, мне для передачи по сети и ответственного хранен... текст свёрнут, показать
     
  • 3.18, Аноним (18), 00:01, 08/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    mksquashfs Luke!
     
     
  • 4.20, Аноним (1), 00:37, 08/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не, не работает, это было первое, что я проверил. 7z с большим словарём пока топчик по размеру результата, но он тоже не дедуплицирует - к большим объёмам слабо приминимо. zbackup дедуплицирует (хоть и не даёт настроить компрессор видимо), но хранит при этом файлы в репе, я же хочу простой дедуплицированный архив получить и он этого похоже не умеет.

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

     
  • 3.26, gsdh (?), 23:52, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    git может
     

  • 1.3, ievoochielaPh5Ph (ok), 20:47, 06/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну да. На дворе конец 2019 года, пора бы закрыть CVE-2015-1197 опубликованный 2015-01-19 12:20 UTC. То такими темпами CVE скоро пора будет в школу вести :-D
     
     
  • 2.7, Sluggard (ok), 22:46, 06/11/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Если ты знаешь дату публикации, значит ходил по ссылке, и не мог не видеть, что оно было пофикшено 2015-02-03.
    В чём юмор?
     
     
  • 3.15, Аноним (15), 18:01, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А почему релиз с фиксом в 2019?
     
     
  • 4.16, Sluggard (ok), 18:42, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это вопросы к ребятам из GNU. У них большие паузы между выпусками стабильных версий.
     

  • 1.6, Аноним (6), 21:29, 06/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    cpio
    Интересно, а во Free ее кто-нибудь до сих пор использует.
    Это какой-то привет из 90-х
     
     
  • 2.8, OpenEcho (?), 00:39, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Это какой-то привет из 90-х

    Из начала 80-x... для точности

     
  • 2.9, chubartavec (?), 03:15, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Конечно. Скрипты архивации вида: "find dir | cpio -o -H newc | gzip -9 > arch.'date '+%Y%m%d''.cpio.gz" с середины 90-х используются, еще со вторых версий Free. Работают - зачем что-то менять?
     
     
  • 3.11, Аноним (11), 05:06, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    cpio менять может и не надо, а вот сменить gzip на zstd таки наверное уже пора.
     
  • 2.12, пох. (?), 10:11, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    я использую. Юникс - он вообще из 70х, если вы не в курсе.
    Приветы из "2k19" - это оставляю вам, любители обмазываться свежайшим "новым стандартом".

    P.S. справедливости ради - в современной freebsd что cpio, что tar - врапперы над пресловутой libarchive, отличающиеся только набором параметров.

     
  • 2.13, fi2fi (?), 11:42, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну так как фри претендует на гордое имя Unix, то да, должно быть согласно спецификациям  )))
     
     
  • 3.14, Free (??), 12:32, 07/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На имя - не, не претендуем. Имя досталось полным п-сам, сборщикам денег за воздух. Об это мараться нет никакого смысла. По слухам даже оракл отказался от сертификации новых сборок solaris. Нехай эпл платит, это в их духе, платить за побрякушки.

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

    А сертификата - у того юникс, который писали Ритчи с Томсоном, тоже никогда не было, представляете?!

     

  • 1.17, Аноним (17), 19:55, 07/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    " позволяет перезаписать файлы за пределами каталога, в который раскрывается архив. "
    а, то есть можно указать куда распаковывать? а то я как то попробовал потрогать архив от другой платформы, а оно мне его в корень раскатало
     
     
  • 2.25, Ordu (ok), 16:49, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    возможно твоя ситуация была обусловлена тем, что в архиве были указаны полные пути файлов, а не относительные. Относительные применяются к текущей директории и туда всё и распаковывается. А вот полные пути... их тоже наверное можно сделать относительными посредством каких-нибудь опций распаковки, но я хз, не сталкивался.
     
     
  • 3.27, юникснуб (?), 16:41, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Блин, люди, у вас документация по любой команде за несколько секунд доступна! Не надо бегать по этажам и писать запросы; не надо оформлять читательские билеты; не надо шариться по книжным рынкам... Всё на блюдечке, просто набрать "man foo" или хотя бы в гугле строчку вбить! Но - нет, мы будем избегать любой ценой полезной информации, вместо этого переливая из пустого в порожнее на форуме.

    Господь, если ты есть, - жги...

     
     
  • 4.28, Ordu (ok), 21:01, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Блин, люди, у вас документация по любой команде за несколько секунд доступна!
    > Не надо бегать по этажам и писать запросы; не надо оформлять
    > читательские билеты; не надо шариться по книжным рынкам... Всё на блюдечке,
    > просто набрать "man foo" или хотя бы в гугле строчку вбить!
    > Но - нет, мы будем избегать любой ценой полезной информации, вместо
    > этого переливая из пустого в порожнее на форуме.

    Эээммм... Это ты к чему сейчас сказал? Просто из любви к азбучным истинам, или у тебя какая-то более глубокая цель была?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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