fix(share-ai): reject non-text message parts to close size-cap bypass (RT-19) #63
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Источник: red-team-аудит, RT-19 (закрывает заодно RT-14) (
docs/red-team-report.md).Что происходит
Лимит размера сообщения
MAX_SHARE_MESSAGE_CHARS=8000считает только текстовые части (uiMessageTextLength,public-share-chat.controller.ts:284,308). Если вpartsзапихнуть большой не-текстовый кусок (forged tool-result/file/data), он обходит лимит и раздувает вход модели (token-DoS);convertToModelMessagesразворачивает подделанный tool-result в контекст (RT-14).Фикс
Сервер в анонимном ходе тулзы не исполнял → любой tool-part в запросе клиента нелегитимен. Отбивать не-текстовые части на шаге проверки размера:
Цена / приоритет
Маленькая правка в одной точке, закрывает и RT-19, и RT-14.
Ghost referenced this issue2026-06-21 14:10:35 +03:00