К обсуждениям

pnpm: удержание manifest name внутри корня node_modules

Редакция VOne Технологии

Защитная диагностика pnpm isolated-linker import target по ghsa-vq4v-j7r6-jq4m: применимость, безопасный локальный control, измеримый verdict, stop-rule и минимальный пакет данных владельцу системы.

Короткий ответ — pnpm: удержание manifest name внутри корня node_modules

Задача страницы — проверить containment пути pnpm при импорте tarball dependency с недоверенным manifest name. Advisory ghsa-vq4v-j7r6-jq4m служит свежим inventory-сигналом, но не доказывает состояние конкретной установки. Сначала зафиксируйте фактически загруженный компонент pnpm isolated-linker import target, lock-файл, image digest или сборочный provenance и границу «npm pnpm: fixed 10.34.5 and 11.11.0». Пользовательская боль здесь одна: имя пакета из tarball становится сегментом пути и может направить запись за пределы node_modules. Итогом должен стать артефакт «manifest class / normalized name / target relation / writes recorded», чтобы другой инженер повторил решение без production-данных, внешнего воздействия и догадок.

Граница применимости: pnpm isolated-linker import target

Разложите проверку на переходы «tarball manifest → normalized package name → import target → root check → filesystem adapter». Для каждого перехода укажите владельца значения, допустимое состояние и запрещённый side effect. Проверяемая инварианта: канонический import target всегда является потомком выделенного node_modules root. NOT_APPLICABLE допустим только при доказанном отсутствии pnpm isolated-linker import target или недостижимости указанной ветки. Неизвестные effective version, runtime digest либо конфигурация дают UNKNOWN; номер релиза без runtime readback не даёт PASS.

Почему одной версии недостаточно

SBOM, package manager, container digest и реально импортированный модуль отвечают на разные вопросы. Сведите их в одну provenance-строку и сопоставьте с границей «npm pnpm: fixed 10.34.5 and 11.11.0». Затем подтвердите effective путь «tarball manifest → normalized package name → import target → root check → filesystem adapter»: vendored копия, optional adapter, отдельный worker или старый runtime способны изменить применимость. Фиксируйте AFFECTED_PATH, PATCHED_PATH, COMPONENT_ABSENT либо PROVENANCE_UNKNOWN. Успешный health-check сам по себе не подтверждает правило «канонический import target всегда является потомком выделенного node_modules root».

Безопасный обратимый control

Работайте только в disposable fixture: использовать временный каталог, fake filesystem и несколько неопасных граничных имён без установки реального пакета. Сеть, subprocess, production database, реальные аккаунты, bucket, очереди, письма, токены и пользовательские файлы замените fake, spy или in-memory адаптерами. Перед запуском сохраните baseline hash, нулевые counters, лимит времени, памяти и числа операций. Используйте короткие синтетические маркеры без эксплуатационного payload. После каждой строки возвращайте fixture к исходному состоянию.

Матрица наблюдений

Сначала benign control доказывает достижение целевой функции pnpm isolated-linker import target. Затем boundary-case меняет ровно один признак, связанный с болью «имя пакета из tarball становится сегментом пути и может направить запись за пределы node_modules». Для каждой строки записывайте «manifest class / normalized name / target relation / writes recorded», reason code, duration, counters и digest fixture. Основная инварианта остаётся: канонический import target всегда является потомком выделенного node_modules root. Недостижимая ветка, пропущенный side effect или двусмысленная точка наблюдения означают UNKNOWN, а не удобный PASS.

PASS, FAIL, UNKNOWN и stop-rule

PASS требует подтверждённого provenance, успешного benign control, соблюдения инварианты «канонический import target всегда является потомком выделенного node_modules root», нулевых запрещённых side effects и cleanup proof. FAIL — тот же подтверждённый путь плюс измеримое нарушение policy. UNKNOWN означает отсутствие digest, effective config, recorder или возможности восстановить fixture. Немедленная красная линия: расчётный target вышел из корня или spy увидел запись вне disposable tree. При ней прекратите тест, сохраните минимальные метаданные и не увеличивайте вход или нагрузку.

Восстановление и regression check

Удалите disposable state, верните adapters к baseline и сравните hashes, counters, память и открытые ресурсы. Неожиданный I/O, сетевой вызов, новый процесс, строка БД или оставшийся файл блокирует PASS. После обновления повторите тот же fixture без изменения входов и лимитов; сравните «manifest class / normalized name / target relation / writes recorded». Так видно, изменился ли защищаемый переход «tarball manifest → normalized package name → import target → root check → filesystem adapter», а не окружение, объём данных или инструмент наблюдения.

Самостоятельная ценность и пакет владельцу

Проверяет именно manifest-name sink isolated linker, включая режим без lifecycle scripts, и доказывает путь через filesystem spy. Поэтому материал отвечает на самостоятельный запрос «проверить containment пути pnpm при импорте tarball dependency с недоверенным manifest name» и не является механической заменой бренда, ОС или устройства. Передайте владельцу ghsa-vq4v-j7r6-jq4m, component digest, effective version/config, границу «npm pnpm: fixed 10.34.5 and 11.11.0», схему «tarball manifest → normalized package name → import target → root check → filesystem adapter», control/boundary rows, артефакт «manifest class / normalized name / target relation / writes recorded», verdict, stop reason и cleanup proof. Advisory опубликована 2026-09-02 и обновлена 2026-09-02; это подтверждает свежесть источника, но не популярность запроса, эксплуатацию или применимость к конкретному deployment.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика; даты, версии и ссылки сверены по GitHub Advisory Database и первичному upstream-материалу. Текст самостоятельный, не копирует источники, не содержит эксплуатационных последовательностей и предназначен для безопасной локальной проверки.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.