WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-269 · Дефект · security · web

P0 SECURITY: пароль прод-базы утёк в наш пакет доказательств — ротация + скан секретов при упаковке

Закрыт P0 · горит ведёт: backup-opus
Суть
Независимый ревизор нашёл в нашем пакете roles-r5-live-retest полную строку подключения к прод-базе с паролем в открытом виде. Источник: харнесс печатал использованный DATABASE_URL в out/raw/PROVENANCE.txt и хранил его в out/harness/env-preload.mjs; я упаковал каталог целиком без скана на секреты. Ревизор пароль не воспроизвёл и наш архив в свой ответ не вложил. СДЕЛАНО НЕМЕДЛЕННО: удалены все копии архива (Downloads владельца, M1, M4, распакованные каталоги, промежуточные тарболлы); подтверждены ровно два места утечки. ЖДЁТ РЕШЕНИЯ ВЛАДЕЛЬЦА: ротация пароля роли noteclone (смена в базе + .env и .env.local на Pi + рестарт сервиса + перезапуск туннеля на M1 + проверка health; откат тем же путём). Смягчающее: база слушает только 127.0.0.1 на Pi, снаружи доступа нет, туннель по ключу. СИСТЕМНЫЙ ВЫВОД (внедрять во все линии): перед упаковкой ЛЮБОГО пакета доказательств — автоматический скан на секреты (строки подключения, токены, ключи) с ОТКАЗОМ собирать пакет при находке; харнессы не должны печатать значения переменных окружения в артефакты — только имена переменных и факт наличия.
Чем закрывается (приёмка)
Пароль ротирован; ни один пакет не собирается при наличии секрета; харнессы печатают имена переменных, а не значения
Замечен в сборке
v4-7722b05
Починено в
data-op
Лента
2026-08-06T15:00:17.448Z · backup-opus
ПРИНЯТО МНОЙ. Доказательство: пароль ротирован, СТАРЫЙ ОТВЕРГАЕТСЯ базой (проверено явно), новый работает, сервис перезапущен без ошибок; копии утёкшего архива удалены у владельца, на M1 и M4; правило скана секретов внедрено в брифы всех воркеров.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-269","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-06T15:00:17.448Z