phpMyFAQ - Stored XSS via Entity Decoding Depth Limit Bypass in SVG Sanitizer
phpMyFAQ before 4.1.2 contains a stored cross-site scripting vulnerability in SvgSanitizer::decodeAllEntities() that limits recursive entity decoding to 5 iterations, allowing attackers to bypass sanitization. Authenticated users with FAQ_EDIT permission can upload malicious SVG files with deeply nested ampersand encoding around numeric HTML entities to reconstruct javascript: URLs, which execute arbitrary JavaScript when clicked by other users viewing the uploaded SVG.
- Опубликовано
- 15 мая 2026 г.
- Обновлено
- 17 июн. 2026 г.
- EPSS
- 0,3 % · 16-й процентиль
- CWE
- CWE-79
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
20
Наблюдать
Пока низкий приоритет.
- CVSS
- 20 / 40 · 5.1 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,3 %
Решение CISA SSVC
- Эксплуатация
- proof of concept
- Автоматизируемо
- нет
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · VulnCheck
- 5,4
- NVD ещё не выставил свою оценку; показана оценка CNA.
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЗатронутые системы
—
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (VulnCheck). Не зависят от анализа CPE в NVD и обычно опережают его.
thorsten phpmyfaq
- 4.1.2не затронута
- до 4.1.2затронута · semver
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Packagist | phpmyfaq/phpmyfaq | до 4.1.2 | 4.1.2 |
| Packagist | thorsten/phpmyfaq | до 4.1.2 | 4.1.2 |
Тот же продукт
thorsten: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-46364phpMyFAQ - SQL Injection via User-Agent Header in BuiltinCaptcha38Наблюдать
- CVE-2026-66398phpMyFAQ before 4.1.6 Remote Code Execution via Configuration API37Наблюдать
- CVE-2026-45010phpMyFAQ - Unauthenticated Two-Factor Authentication Brute-Force via /admin/check Endpoint37Наблюдать
- CVE-2026-35676phpMyFAQ - Unauthenticated Password Reset via User Password Update Endpoint35Наблюдать
- CVE-2026-35675phpMyFAQ - Authentication Bypass via Missing Password Reset Token in /api/user/password/update35Наблюдать
- CVE-2026-56738phpMyFAQ has SQL Injection in `StopWords::add()` — Unescaped Stop Word Insertion34Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| thorsten phpmyfaq | 4.1.2 | Вендор (CNA) |
| Packagist:phpmyfaq/phpmyfaq | 4.1.2 | Реестр пакетов (OSV) |
| Packagist:thorsten/phpmyfaq | 4.1.2 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
- offsetсообщил
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2026-46367с разницей 0 дн.phpMyFAQ - Stored XSS via Utils::parseUrl() in Comment Rendering33Наблюдать
- CVE-2026-46361с разницей 0 дн.phpMyFAQ - Stored Cross-Site Scripting via raw Filter in search.twig32Наблюдать
- CVE-2026-56736с разницей 132 дн.phpMyFAQ has Stored XSS in Admin FAQ Editor via HTML Entity Bypass in Frontend FAQ Submission32Наблюдать
- CVE-2026-46363с разницей 0 дн.phpMyFAQ - Stored XSS in FAQ Question/Answer via Encode-Decode Bypass20Наблюдать
- CVE-2026-85593с разницей 112 дн.phpMyFAQ before 4.1.8 Stored XSS via html_entity_decode20Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
- CVE-2026-35675с разницей 13 дн.phpMyFAQ - Authentication Bypass via Missing Password Reset Token in /api/user/password/update35Наблюдать
- CVE-2026-35672с разницей 13 дн.phpMyFAQ - Authentication Bypass via Empty API Token34Наблюдать
- CVE-2026-56737с разницей 132 дн.phpMyFAQ's two-factor authentication login bypasses the password factor32Наблюдать
- CVE-2026-85590с разницей 112 дн.phpMyFAQ before 4.1.8 Authentication Bypass via Two-Factor Disable28Наблюдать
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Достаточно учётной записи с низкими привилегиями.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- Целостность
- Доступность
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Низкие
- Взаимодействие с пользователем
- P
- Область действия
- X
Класс уязвимости (CWE)
CWE-79 · Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')Вектор CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
nvd-secondary
Первопричина
Пользовательский контент вставляется в страницу как HTML. Браузер интерпретирует его как код, а не как данные.
Ошибка в коде
Весь класс CWE-79Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
commentEl.innerHTML = comment.body;Исправленный код
commentEl.textContent = comment.body;Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
- XSS Using MIME Type MismatchCAPEC-209Medium
- DOM-Based XSSCAPEC-588вероятность: High · Very High
- Reflected XSSCAPEC-591вероятность: High · Very High
- Stored XSSCAPEC-592вероятность: High · Very High
- Cross-Site Scripting (XSS)CAPEC-63вероятность: High · Very High
- AJAX FootprintingCAPEC-85вероятность: High · Low
Техники ATT&CK
—
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- github.com/thorsten/phpMyFAQ/security/advisories/GHSA-whqh-9pq5-c7r3
- www.vulncheck.com/advisories/phpmyfaq-stored-xss-via-entity-decoding-depth-limit-bypass-in-svg-sanitizer
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.