Линус Торвальдс: Чувствительные к регистру файловые системы — это ошибка

Линус Торвальдс: Чувствительные к регистру файловые системы — это ошибка

Линус Торвальдс: Чувствительные к регистру файловые системы — это ошибка

На днях вокруг обновлений в Linux 6.15-rc4 вспыхнуло горячее обсуждение. Всё началось с того, что разработчик Kent Overstreet поднял старую тему про ошибки в патчах для поддержки чувствительных к регистру файлов и папок в драйвере Bcachefs.

Мол, когда почти два года назад внедряли эту поддержку, тесты были, но… их никто толком не прогнал. Упустили. Кент честно признал:

«Одних автоматических тестов недостаточно. Нужно глазами следить за тем, что делает твой код».

И вроде бы обычная история про баги и уроки на будущее, но тут в беседу резко ворвался Линус Торвальдс. Сначала коротко ответил: «Нет». А потом выдал фирменную речь:

«Единственный урок — работники с файловой системой ничему не учатся. Чувствительные к регистру имена — это катастрофа, и вам вообще не стоило их делать. Проблема не в тестировании — проблема в том, что вы вообще это начали».

Торвальдс объяснил, что такие фичи делают систему только хуже:

«Нет правильного способа сделать это как надо. А попытки "сделать правильно" превращаются в хаос, где случайные байты вдруг обретают магическое значение».

По его мнению, тесты на проверку таких штук тоже «абсолютно поломаны» и не покрывают самых опасных сценариев — тех, которые могут привести к реальным уязвимостям. И тут началась настоящая перепалка.

Overstreet попытался парировать: мол, реальная потребность в таких каталогах всё-таки есть, и задача — не ныть, а сделать всё аккуратно и читаемо. Торвальдс не сдал позиции:

«Если бы кто-то хоть раз показал качественную реализацию, я бы, может, и передумал. Но пока вижу только плохой код, который не понимает, как работает UTF-8 и юникод».

Overstreet возразил, что опасения по поводу безопасности уже не так актуальны, ведь всё меньше используется совместный доступ к каталогам вроде /tmp. Но Торвальдс остался непреклонен.

Дальше спор скатился в детали реализации кеширования (dcache). Overstreet настаивал, что именно из-за оптимизации там и возникли проблемы. Торвальдс парировал:

«Ты явно не понимаешь, как работает dcache. Я, между прочим, большую часть этого кода писал».

Когда Kent не поверил, Линус напомнил, что писал эти части ещё в конце 90-х, и если появляются «dentry-алиасы», то «значит, ты что-то делаешь не так». В итоге Overstreet признал, что да, ошибался насчёт некоторых моментов — но сделал это, конечно, в своём стиле.

«Забавный способ сказать: "Да, Линус, ты был прав"», — подытожил Торвальдс.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Две уязвимости в Node.js ставят под удар миллионы Windows-приложений

Кураторы проекта Node.js из OpenJS Foundation выпустили обновления с патчами в ветках 24.x, 22.x и 20.x. Апдейты устраняют проблемы, актуальные для приложений Windows и веб-сервисов, использующих JavaScript-движок V8.

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

Уязвимость CVE-2025-27210 представляет собой возможность обхода защиты от path traversal (выхода за пределы рабочего каталога), которая проявляется при использовании API-функции path.join() и возникла из-за неполного патча для CVE-2025-23084.

Ошибка в реализации функции path.normalize() позволяет получить несанкционированный доступ к файлам и папкам с помощью недопустимого имени — такого как CON, PRN, AUX (в Windows резервируются для системных устройств, к которым можно обратиться напрямую).

Уязвимость CVE-2025-27209 классифицируется как HashDoS — возможность вызвать отказ приложения (DoS) через создание множественных коллизий хешей. Проблема была привнесена с выпуском Node.js 24.0.0, который изменил алгоритм вычисления хешей строк.

Реализованная в движке V8 хеш-функция rapidhash ускорила процесс, но при этом также открыла дверь для атак HashDoS. Злоумышленник, контролирующий ввод строк для хеширования, может скормить в хеш-таблицу данные таким образом, чтобы все они попали в один слот.

В результате скорость поиска элементов и вставки новых коллизий упадет, а потребление памяти будет расти, что в итоге приведет к DoS. Знания зерна алгоритма для генерации хеш-коллизий в данном случае не потребуется.

Патчи для Node.js включены в состав сборок 20.19.4, 22.17.1 и 24.4.1. Организациям, использующим Windows-приложения на основе Node.js, рекомендуется приоритизировать обновление.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

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