Выпуск FUSE-модуля BTFS 3.3 для монтирования torrent-файлов как ФС - QubStore

Выпуск FUSE-модуля BTFS 3.3 для монтирования torrent-файлов как ФС

BTFS 3.3 — модуль FUSE, который превращает торренты в обычную папку с файлами только для чтения.

Вышла версия BTFS 3.3 — FUSE-модуля BitTorrent FileSystem. Его задача проста и элегантна: примонтировать torrent-файл или magnet-ссылку так, чтобы содержимое раздачи отображалось как обычная директория. При этом она доступна только для чтения, а данные подкачиваются по мере обращения к ним, а не заранее целиком. На практике это выглядит так: можно подключить торрент с музыкальным альбомом и сразу слушать треки в любом медиаплеере, не дожидаясь, пока весь альбом окажется на локальном диске.

Написан проект на C++ и распространяется под лицензией GPLv3. В выпуске 3.3 закрыта уязвимость, которой пока не присвоен номер CVE. Причина проблемы — небезопасная работа с каталогом временных файлов. Вместо штатной функции mkdtemp, которая создаёт уникальную временную директорию, BTFS использовал предсказуемые имена вида /tmp/btfs/хэш_от_торрента. Вдобавок при создании новой папки разработчики игнорировали ошибку EEXIST, возвращаемую mkdir().

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

CVE-номера у исправления нет, но суть патча уже раскрыта публично вместе с релизом.

Ссылка на основную публикацию