15-летний Python-баг позволяет выполнить код и затрагивает 350 000 проектов

15-летний Python-баг позволяет выполнить код и затрагивает 350 000 проектов

15-летний Python-баг позволяет выполнить код и затрагивает 350 000 проектов

Уязвимость Python-модуля tarfile за 15 лет никто так и не пропатчил. А меж тем она затрагивает более 350 тысяч репозиториев с открытым исходным кодом и позволяет выполнить произвольный код.

Впервые о проблеме стало известно в 2007 году, ей присвоили идентификатор CVE-2007-4559. Интересно, что никто не стал устранять брешь, единственное — разработчиков просто предупредили о риске.

Брешь затрагивает код, использующий функцию tarfile.extract(). Это классический баг обхода пути (path traversal), позволяющий условному атакующему перезаписывать произвольные файлы.

Удивительно, что за все 15 лет не было сообщений об эксплуатации уязвимости, учитывая, что технические детали были доступны в отчете 2007 года. Тем не менее баг представляет опасность для цепочек поставки софта по моей день.

На оставшуюся дыру обратили внимание специалисты компании Trellix, описывающие ее следующим образом:

«Уязвимость существует из-за того, что код в функции extract в Python-модуле tarfile доверяет информации в объекте TarInfo».

Сообщение на площадке баг-трекера Python гласит, что вопрос был закрыт, поскольку документацию обновили, добавив приписку, что «распаковывать архивы из непроверенных источников может быть опасно».

Проанализировав масштаб проблемы, специалисты Trellix пришли к выводу, что уязвимость затрагивает более 350 тысяч проектов. В отчете исследователей описываются простые шаги, которых достаточно для эксплуатации CVE-2007-4559 в Windows-версии Spyder IDE.

Linux 7.1 может наконец сделать NTFS по-настоящему родной файловой системой

В Linux 7.1 намечается заметное обновление, которое особенно оценят те, кто живёт на два мира — Linux и Windows. В ядро уже влит новый драйвер NTFS, и это одна из самых важных, хотя и не самых громких, перемен в файловой подсистеме за последние годы. Сам Линус Торвальдс назвал это воскрешением NTFS.

Вся соль в том, что Linux наконец получает более современную встроенную поддержку NTFS — файловой системы, на которой по умолчанию живёт Windows.

До сих пор с ней всё было либо терпимо, либо просто неудобно: старый драйвер в ядре долгое время умел в основном читать NTFS-разделы, NTFS-3G работал через FUSE и проигрывал по скорости, а более новый NTFS3, хотя и был быстрее, за последние годы успел заработать репутацию решения без слишком активного развития.

Новый драйвер делает ставку не просто на поддержку NTFS, а на более нативную работу внутри самого ядра Linux. В документации ядра прямо сказано, что он обеспечивает полноценную поддержку чтения и записи, рассчитан на высокую производительность и использует современные механизмы вроде iomap и folio.

За разработкой стоит Намджэ Чон — тот же девелопер, который раньше занимался драйвером exFAT для Linux. По данным LKML, он работал над этим направлением около четырёх лет.

На бумаге всё выглядит очень бодро. В обсуждении патчей и публикациях о слиянии упоминается, что однопоточная запись стала быстрее примерно на 3–5%, многопоточная — на 35–110%, а монтирование 4-терабайтного диска ускорилось примерно в четыре раза по сравнению с NTFS3. Кроме того, новый драйвер уже проходит больше тестов xfstests, чем NTFS3: 326 против 273.

Правда, без оговорок тут не обошлось. Это всё-таки новый код, так что в первых релизах вполне возможны шероховатости, особенно в каких-то менее популярных особенностях NTFS. Да и сама NTFS остаётся файловой системой из мира Windows, так что полностью вести себя как ext4 или XFS под Linux она всё равно не начнёт. Но сам вектор выглядит приятным: в ядре Linux эту тему наконец решили делать всерьёз, а не по остаточному принципу.

RSS: Новости на портале Anti-Malware.ru