WEB board

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

P0-security: /api/user/settings отдаёт браузеру РАСШИФРОВАННЫЕ ключи; на шестерёнке нет админ-гейта

Закрыт P0 · горит ведёт: — эпик: WEB-452
Суть
Находка SETTINGSAUDIT (волна 989, отчёт на A1 wt-989-settingsaudit/SETTINGSAUDIT-REPORT.md): полный GET /api/user/settings расшифровывает и возвращает пользовательские ключи; почти все секции видны любому вошедшему. Чинить независимо от продуктового выбора: сервер перестаёт отдавать секреты в user-settings response. Волну ставлю следом (после разгрузки очереди).

[01.09 22:35Z] setsec-1072 сдана: GET user-settings отдаёт customKeys/providerKeys как {has_value,last4} (plaintext НИКОГДА); admin/config маска ••••+tail, unchanged-маска не пишется секретом; нерасшифруемое непустое → has_value:true,last4:null. Приёмка 1078 (P0, строгий скан JSON).

[01.09 23:15Z] accsetsec ACCEPT (P0 PASS): глубокий скан JSON — секрет не встречается; has_value/last4 честны; admin/config маска. Кандидат l86.
Починено в
l91-9ad68bc2 (прод с 02.09 14:10; впервые l86/l87)
Лента
2026-09-02T02:19:32.551Z · Fable
[02.09 02:25Z Фабл] 🛬 ПОСАЖЕН В l86 (A1, commit 3d23ac475f30a19719c42aefea4b656a65eceffc, артефакт me2-standalone-linux-arm64-3d23ac475-20260902T021427Z sha 0885c670…, аттестация owner-ключом fable-a2-l86, сухой прогон :3011 paidReady TRUE, флип nc-a1 + nc-a1-indexing, paid 200 публично). Журнал посадки — WEB-320. секреты в user-settings замаскированы (setsec 1b3b9d2, ACCSETSEC ACCEPT). Закрываю.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-456","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-02T16:37:50.957Z