People-first проверка Repomix MCP по ghsa-hwpp-h97w-2h3j: применимость, безопасный fixture для границы «единый file-read safety gate для direct read и attach/read output flow», измеримый контракт и stop-rule без production-данных.
Определите применимость Repomix MCP
Создайте карточку применимости для Repomix MCP: installed version, package source, build digest, feature/config reachability и роль вызывающего субъекта. Reviewed Advisory описывает «repomix: attach_packed_output can bypass file-read secret scanning for supported local files», опубликована 2026-07-01, обновлена 2026-07-01 и задаёт диапазон «repomix <= 1.14.0; first patched 1.14.1». Эти данные не доказывают состояние конкретного развёртывания. Проверьте vendor backport и commit provenance; при неизвестной сборке оставьте applicability=unknown. Фактическая граница статьи — «единый file-read safety gate для direct read и attach/read output flow», а не общее обсуждение severity или продукта.
Опишите доверительную границу
Сформулируйте отдельную пользовательскую боль: поддерживаемый local text file можно зарегистрировать как packed output и прочитать без обязательного scan. Запишите доверенный субъект, объект, управляющую policy и первый потенциальный побочный эффект. Заранее задайте защитный контракт: оба пути вызывают scanner до чтения; invalid packed format отклонён; scan deny не возвращает content. Его нельзя подменять отсутствием исключения или HTTP 200: важна стадия до чтения, передачи, allocation, mutation или delivery. Рабочий артефакт — read-path / declared-type / format-valid / scanner-calls / bytes-returned / result. В нём нужны только классы и счётчики; значения credentials, содержимое файлов, IP, account identifiers и персональные данные исключаются.
Соберите обратимый стенд
Постройте минимальный обратимый стенд: temp files с harmless policy-marker и valid packed-output marker, fake scanner с invocation counter. Затем сравнить direct-read и attach/read decisions, не помещая в контрольный сценарий реальные секретоподобные значения. Сеть должна быть отключена или замкнута на loopback, filesystem — на disposable temp, state — на in-memory либо transaction rollback. Добавьте эталонный путь и отрицательный boundary-case, дайте каждому bounded timeout и одинаковую конфигурацию. До опыта запишите digest входа; после опыта сохраните result class, side-effect counters и cleanup proof. Не увеличивайте нагрузку и не пытайтесь воспроизвести вредный эффект на чужой системе.
Измерьте контракт до побочного эффекта
Сведите observed в матрицу «read-path / declared-type / format-valid / scanner-calls / bytes-returned / result» и сравните с критерием «оба пути вызывают scanner до чтения; invalid packed format отклонён; scan deny не возвращает content». Для каждого ряда отметьте decision stage, mutation/read/send counter, final state digest и отклонение от expected. Normal-control обязан пройти тот же код, иначе отрицательный итог ничего не говорит о защите. Повторите лишь малый детерминированный набор; расхождение порядка считается отдельным race/cache сигналом. Pass ставится только когда запрет срабатывает раньше чувствительного действия, а разрешённый сценарий сохраняет documented behavior.
Свяжите patch с узким механизмом
Проверьте исправление по механизму, а не по номеру версии: upstream patch должен напрямую обеспечивать «единый file-read safety gate для direct read и attach/read output flow». Сопоставьте pre/post build на том же контрольный сценарий и сравните «read-path / declared-type / format-valid / scanner-calls / bytes-returned / result». Для диапазона «repomix <= 1.14.0; first patched 1.14.1» отдельно запишите vendor patch provenance и release artifact digest. Canary допускается только в лаборатории; production rollout требует отдельного change contract, backup и rollback. Не объявляйте систему безопасной целиком: этот опыт подтверждает один узкий invariant и не говорит об эксплуатации, ущербе, спросе, индексации или позиции страницы.
Остановитесь и подготовьте поддержку
Примените жёсткий stop-rule: остановиться до домашнего файла, настоящего секрета или пути вне temp. Красные флаги также включают внешний адрес, реальный credential, privilege prompt, необратимую запись, рост ресурсов, данные не из контрольный сценарий, отсутствие cleanup и изменившийся объект вне test root. При первом флаге остановитесь и оставьте статус blocked. Для поддержки приложите для ghsa-hwpp-h97w-2h3j, Repomix MCP, «repomix <= 1.14.0; first patched 1.14.1», reachability evidence, sanitized matrix, эталонный путь, stop reason и две прямые ссылки. Не публикуйте payload и чужие логи; неизвестное обозначьте unknown, а не выдуманным фактом.
Используйте минимальное дерево решения
Минимальное дерево решения для Repomix MCP: если версия вне доказанного affected range и patch provenance подтверждён — not-applicable; если ветвь недостижима по документированной конфигурации — not-reachable; если контрольный сценарий даёт «оба пути вызывают scanner до чтения; invalid packed format отклонён; scan deny не возвращает content» на candidate build — ready-for-reviewed-update; если наблюдается «поддерживаемый local text file можно зарегистрировать как packed output и прочитать без обязательного scan» — fail и эскалация владельцу. Во всех остальных случаях статус unknown. К карточке приложите «read-path / declared-type / format-valid / scanner-calls / bytes-returned / result» и criterion «остановиться до домашнего файла, настоящего секрета или пути вне temp». Такое дерево не превращает один advisory в универсальную рекомендацию и сохраняет people-first приоритет: минимальное воздействие, ясная остановка и проверяемый ответ.
Материал подготовлен редакцией VOne с помощью ИИ; даты, диапазоны, прямые ссылки, безопасный опыт, privacy-ограничения и отсутствие рекламных обещаний затем перепроверены по первичным источникам.
Источники и проверка
- GitHub Reviewed Advisory ghsa-hwpp-h97w-2h3j проверено 2026-08-31
- Upstream-репозиторий Repomix MCP проверено 2026-08-31
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.