ENGAGEMENT · SUBMITTED --:--:-- UTC
// E N G A G E M E N T   B R I E F //

VK MAX · ГОЛОС

web.max.ru · 2026-04-18
VK Bug Bounty · in-scope · responsible disclosure · @exreddit / ПАСТЫРЬ
1Critical
0фильтров
227символов зашитого голоса
Nпотенциальных слушателей
>> зашитый голос

CRITICAL STORED · скрипт, который ждёт, пока его откроют

>> я написал в «о себе» не текст · я зашил туда голос, который заговорит в чужом браузере

В поле «о себе» разрешено писать всё. Любой символ, любой тег, любую инструкцию для браузера. Сервер принимает, сохраняет, и каждый раз, когда кто-то открывает мой профиль, возвращает это обратно дословно — ни одной замены, ни одного экранирования, ни единого фильтра.

Сам MAX в окне редактирования аккуратно показывает это как текст — ничего страшного. Но поле не живёт только в этом окне. Его читают другие интерфейсы: карточка контакта при чужом просмотре, мобильное приложение, внутренние панели саппорта и антифрода, интеграции с mini-apps, выгрузки в отчёты. Везде, где рендерер хоть на миллиметр проще — зашитый голос начнёт говорить. И говорить он будет от имени того, кто открыл.

Самый болезненный слушатель — оператор службы поддержки. Он открывает мой профиль по жалобе, его панель рендерит моё «о себе» без защиты — и в его браузере исполняется мой сценарий. Его сессия, его куки, его IP теперь в моих руках. Голос ушёл в штаб.

>> impact  ·  blind-XSS в admin/support · кража саппорт-сессии при открытии профиля · потенциал доступа ко всей ленте жалоб и модераторских действий
>> как я шёл
[01]SCOPEENFORCED
scope := VK_Bug_Bounty(*.max.ru) · пределы подписаны, за черту не ступаю
[02]NO_HARMVERIFIED
read_only := true · ни одного чужого профиля не тронуто
[03]SELF_ONLYMY_BIO
target := @exreddit.bio · сохранение в своё поле, свой аккаунт, своё имя
[04]PAYLOADMARKER
script → my.callback · скрипт уходит на мой приёмник, никуда больше
[05]NO_VICTIM0 OPENED
viewer_count := 0 · я не посылал жалоб, не тегал саппорт, не провоцировал открытие
[06]PROOFSTORED
доказательство = raw дамп сервера, возвращающего мой payload дословно · без выполнения
[07]CLEANUPREVERTED
profile.description := default · голос вынут из поля после submit отчёта
[08]REPORTSUBMITTED
отчёт → VK Bug Bounty · full disclosure владельцу · без побочных каналов
ПАСТЫРЬ
white-hat · responsible disclosure · no third-party sale
engagement opened · 2026-04-18 · submitted · 2026-04-18
signed · @exreddit / ПАСТЫРЬ · VK Bug Bounty
<< HOME ALL DISCLOSURES >>