
Эксплойт proof-of-concept для CVE-2026-23745 — уязвимости обхода пути в node-tar, позволяющей произвольную перезапись файлов через вредоносные tar-архивы.
Исследование: Joshua van Rijswijk
PoC для CVE-2026-23745 — уязвимости обхода пути с высоким уровнем серьезности в node-tar ( <7.5.2).
Библиотека не выполняет санитизацию абсолютных путей в поле linkpath для жестких ссылок (Hardlinks) и символических ссылок (Symlinks). Это позволяет вредоносным tar-архивам обойти корневую директорию извлечения и перезаписать произвольные файлы на хост-системе, даже если установлено preservePaths: false.
Расположена в src/unpack.ts. Библиотека использует path.resolve() для несанитизированных пользовательских данных:
// Ошибка: path.resolve игнорирует 'cwd', если второй аргумент является абсолютным
const target = path.resolve(this.cwd, String(entry.linkpath))
Если злоумышленник указывает абсолютный путь (например, /etc/passwd) в заголовке tar, node-tar разрешает его в корень системы вместо директории извлечения.
Включенный poc.js генерирует вредоносный архив и пытается перезаписать локальный файл secret.txt.
Установите уязвимую версию:
npm install [email protected]
Запустите генератор эксплойта:
node poc.js
Вывод:
[+] VULN CONFIRMED: Hardlink overwrite successful
Target file content changed to: OVERWRITTEN
Исправлено в v7.5.3. Обновление добавляет stripAbsolutePath() для санитизации целевых путей ссылок перед разрешением.
Ссылки: