WEB-255 · Дефект · security · web
Гигиена хранения: FactcheckVerdictCache глобален (только claimHash) — приватные цитаты попадают в общую таблицу
Закрыт
P1 · важно
ведёт: —
Суть
Находка воркера o244 при работе над WEB-244 (шире исходной задачи). FactcheckVerdictCache (prisma/schema.prisma:413) уникален по claimHash — БЕЗ userId, notebookId, teamId. buildEvidenceBundle кладёт в него цитаты вместе с текстом; пользователь другого тенанта, проверяющий то же утверждение, получал их в своём ответе через кеш. ЧТЕНИЕ уже закрыто read-time фильтром (WEB-244, волна в работе) + write-side предикатом isSharedCacheableEvidence (приватные цитаты больше НЕ пишутся в общий кеш). ОСТАЛОСЬ: строки, записанные ДО фикса, лежат в общей таблице. Варианты: (а) ключевание кеша тенантом/скоупом — архитектурно правильное; (б) точечная чистка строк с provider=internal в evidenceBundle; (в) полная инвалидация кеша (данные регенерируемы). ВАЖНО: любой DELETE на проде — только с явного разрешения владельца. Оценить объём затронутых строк ДО решения (read-only запрос).
Как воспроизвести
Два тенанта проверяют одно и то же утверждение; второй получает цитаты первого из общего кеша
Замечен в сборке
v4-54ab78f
Починено в
data-op
Лента
2026-08-06T08:27:07.151Z · backup-opusКеш вердиктов очищен на проде с ЯВНОГО разрешения владельца (06.08 09:2x). Порядок: сначала бэкап CREATE TABLE "FactcheckVerdictCache_backup_20260806" AS SELECT * (44 строки), затем DELETE. Проверка после: в рабочей таблице 0 строк, в бэкапе 44 — откат возможен одним INSERT ... SELECT. Данные регенерируемые: кеш наполнится заново при следующих проверках, уже под новыми правилами (write-side предикат из WEB-244 не пускает приватные цитаты в общую таблицу). Архитектурный остаток — ключевание кеша тенантом — остаётся кандидатом на отдельную работу, но острота снята.
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-255","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-06T08:27:07.150Z