CVE-2026-23950
node-tar содержит состояние гонки в резервировании путей из-за коллизий лигатур Unicode на macOS APFS
- Опубликовано
- 20 янв. 2026 г.
- Обновлено
- 1 сент. 2026 г.
- Назначение CNA
- GitHub_M
- Наблюдены доказательства
- 25 авг. 2026 г.
Первичный CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:LНизкий · следующие 30 дней
- Процентиль
- 17,7 %
- Дата модели
- 21 сент. 2026 г.
EPSS – это статистическая оценка, а не достоверность или мера воздействия. Объедините это с CVSS, статусом KEV, воздействием и вашей средой.
Резюме
# node-tar, Tar для Node.js, имеет уязвимость состояния гонки в версиях до 7.5.3 включительно Это связано с неполной обработкой коллизий путей в системе `path-reservations`. На файловых системах, нечувствительных к регистру или нормализации (таких как macOS APFS, на которой проводилось тестирование), библиотека не блокирует конфликтующие пути (например, `ß` и `ss`), что позволяет обрабатывать их параллельно. Это обходит внутренние механизмы защиты от параллелизма библиотеки и допускает атаки типа Symlink Poisoning через состояния гонки. Библиотека использует систему `PathReservations` для обеспечения сериализации проверок метаданных и файловых операций для одного и того же пути. Это предотвращает состояния гонки, при которых одна запись может перезаписать другую одновременно. Это состояние гонки, которое позволяет произвольную перезапись файлов. Уязвимость затрагивает пользователей и системы, использующие node-tar на macOS (APFS/HFS+). Из-за использования Unicode-нормализации `NFD` (в которой `ß` и `ss` различаются), конфликтующие пути не сохраняют свой порядок должным образом на файловых системах, игнорирующих Unicode-нормализацию (например, APFS, где `ß` вызывает коллизию inode с `ss`). Это позволяет злоумышленнику обойти внутренние блокировки параллелизации (`PathReservations`) с помощью конфликтующих имён файлов внутри вредоносного tar-архива. Патч в версии 7.5.4 обновляет `path-reservations.js` для использования формы нормализации, соответствующей поведению целевой файловой системы (например, `NFKD`), с последующим применением сначала `toLocaleLowerCase('en')`, а затем `toLocaleUpperCase('en')`. В качестве обходного решения пользователи, которые не могут оперативно обновиться и программно используют `node-tar` для извлечения произвольных tar-данных, должны отфильтровывать все записи `SymbolicLink` (как это делает npm), чтобы защититься от произвольной записи файлов через эту проблему коллизии имён записей файловой системы.
Источники
1Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.