CVE-2021-41174: XSS vulnerability allowing arbitrary JavaScript execution
Оценка Noroxi
Приоритет: В плане (оценка срочности 50/100)
- Опубликован готовый модуль атаки (Nuclei); для эксплуатации не нужна особая квалификация.
- Есть публичный код proof-of-concept (Exploit-DB / GitHub); записей об эксплуатации в реальных атаках нет.
- Вероятность эксплуатации в ближайшие 30 дней: 85,4% (FIRST EPSS); выше, чем у 99,7% записей.
- Может быть вызвана любым, у кого есть доступ через интернет. Учётная запись или пароль не требуются. Пользователь должен открыть ссылку или посетить страницу. Особые условия не требуются; воспроизводится стабильно.
- Исправленная версия: @grafana/data (npm) 8.2.3; dracut-saltboot (openSUSE:Leap 15.3) 0.1.1665997480.587fa10-150000.1.41.1; golang-github-boynux-squid_exporter (openSUSE:Leap 15.3) 1.6-150000.1.9.1.
Включите в обычный цикл установки исправлений. Обновитесь до @grafana/data (npm) 8.2.3; dracut-saltboot (openSUSE:Leap 15.3) 0.1.1665997480.587fa10-150000.1.41.1; golang-github-boynux-squid_exporter (openSUSE:Leap 15.3) 1.6-150000.1.9.1 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
Grafana is an open-source platform for monitoring and observability. In affected versions if an attacker is able to convince a victim to visit a URL referencing a vulnerable page, arbitrary JavaScript content may be executed within the context of the victim's browser. The user visiting the malicious link must be unauthenticated and the link must be for a page that contains the login button in the menu bar. The url has to be crafted to exploit AngularJS rendering and contain the interpolation binding for AngularJS expressions. AngularJS uses double curly braces for interpolation binding: {{ }} ex: {{constructor.constructor(‘alert(1)’)()}}. When the user follows the link and the page renders, the login button will contain the original link with a query parameter to force a redirect to the login page. The URL is not validated and the AngularJS rendering engine will execute the JavaScript expression contained in the URL. Users are advised to upgrade as soon as possible. If for some reason you cannot upgrade, you can use a reverse proxy or similar to block access to block the literal string {{ in the path.
- Опубликовано
- 3 нояб. 2021 г.
- Обновлено
- 17 июн. 2026 г.
- EPSS
- 85,4 % · 99-й процентиль
- CWE
- CWE-79
Инструменты для отчёта
Оценка срочности
50
В плане
Включите в обычный цикл установки исправлений.
- CVSS
- 24 / 40 · 6.1 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 26 / 30 · 85,4 %
Оценка CNA и NVD
- NVD
- 6,1
- CNA · GitHub_M
- 6,9
- разница 0,8 балла
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:H/A:N
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Есть PoC, боевого модуля нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
У вас WordPress? Проверьте сайт бесплатно в WP Lens
Анализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
| Вендор | Продукт | CPE |
|---|---|---|
| grafana | grafana | cpe:2.3:a:grafana:grafana |
Ограничьте последствия XSS
Это уязвимость межсайтового скриптинга (XSS). Хорошо настроенная Content-Security-Policy её не устраняет, но сильно снижает последствия. Бесплатно проверьте CSP и другие заголовки безопасности сайта.
Проверить заголовкиЗатронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- grafana grafana8.0.0 и новее · до 8.2.3
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
grafana grafana
- >= 8.0.0, < 8.2.3затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| npm | @grafana/data | с 8.0.0 · до 8.2.3 | 8.2.3 |
| openSUSE:Leap 15.3 | dracut-saltboot | до 0.1.1665997480.587fa10-150000.1.41.1 | 0.1.1665997480.587fa10-150000.1.41.1 |
| openSUSE:Leap 15.3 | golang-github-boynux-squid_exporter | до 1.6-150000.1.9.1 | 1.6-150000.1.9.1 |
| openSUSE:Leap 15.3 | golang-github-prometheus-promu | до 0.13.0-150000.3.9.1 | 0.13.0-150000.3.9.1 |
| openSUSE:Leap 15.3 | grafana | до 8.3.5-150200.3.21.1 | 8.3.5-150200.3.21.1 |
| openSUSE:Leap 15.3 | grafana | до 8.5.13-150200.3.29.5 | 8.5.13-150200.3.29.5 |
| openSUSE:Leap 15.3 | prometheus-postgres_exporter | до 0.10.0-150000.1.3.1 | 0.10.0-150000.1.3.1 |
| openSUSE:Leap 15.3 | rhnlib | до 4.2.6-150000.3.34.1 | 4.2.6-150000.3.34.1 |
| openSUSE:Leap 15.3 | spacecmd | до 4.2.16-150000.3.77.1 | 4.2.16-150000.3.77.1 |
| openSUSE:Leap 15.3 | spacecmd | до 4.3.16-150000.3.89.1 | 4.3.16-150000.3.89.1 |
| openSUSE:Leap 15.4 | prometheus-blackbox_exporter | до 0.19.0-150000.1.14.3 | 0.19.0-150000.1.14.3 |
| openSUSE:Leap 15.4 | wire | до 0.5.0-150000.1.9.3 | 0.5.0-150000.1.9.3 |
| openSUSE:Tumbleweed | grafana | до 8.3.4-1.1 | 8.3.4-1.1 |
| SUSE:Enterprise Storage 6 | grafana | до 8.5.13-150100.3.12.1 | 8.5.13-150100.3.12.1 |
| SUSE:HPE Helion OpenStack 8 | golang-github-prometheus-node_exporter | до 1.3.0-1.15.3 | 1.3.0-1.15.3 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP4 | grafana | до 8.5.13-150200.3.29.5 | 8.5.13-150200.3.29.5 |
| SUSE:Manager Client Tools 12 | golang-github-boynux-squid_exporter | до 1.6-1.9.1 | 1.6-1.9.1 |
| SUSE:Manager Client Tools 12 | golang-github-prometheus-alertmanager | до 0.23.0-1.12.3 | 0.23.0-1.12.3 |
| SUSE:Manager Client Tools 12 | golang-github-QubitProducts-exporter_exporter | до 0.4.0-1.6.1 | 0.4.0-1.6.1 |
| SUSE:Manager Client Tools 12 | grafana | до 8.3.5-1.30.3 | 8.3.5-1.30.3 |
| SUSE:Manager Client Tools 12 | grafana | до 8.5.13-1.36.2 | 8.5.13-1.36.2 |
| SUSE:Manager Client Tools 12 | mgr-cfg | до 4.3.6-1.27.4 | 4.3.6-1.27.4 |
| SUSE:Manager Client Tools 12 | mgr-custom-info | до 4.3.3-1.18.1 | 4.3.3-1.18.1 |
| SUSE:Manager Client Tools 12 | mgr-daemon | до 4.3.4-1.32.3 | 4.3.4-1.32.3 |
+77
Тот же продукт
grafana: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2021-39226Snapshot authentication bypass in grafanaKEV89Срочно
- CVE-2021-43798Grafana path traversalKEV87Срочно
- CVE-2024-9264Grafana SQL Expressions allow for remote code execution66На этой неделе
Опубликованы до и после этой записи в том же продукте
- ← РаньшеCVE-2021-2814722 мар. 2021 г. · The team sync HTTP API in Grafana Enterprise 6.x before 6.7.6, 7.x before 7.3.10, and 7.4.x before 7.4.5 has an Incorrect Access Control iss26Наблюдать
- ← РаньшеCVE-2021-2814822 мар. 2021 г. · One of the usage insights HTTP API endpoints in Grafana Enterprise 6.x before 6.7.6, 7.x before 7.3.10, and 7.4.x before 7.4.5 is accessible31Наблюдать
- Позже →CVE-2021-4124415 нояб. 2021 г. · Cross organization admin control in Grafana29Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| npm:@grafana/data | 8.2.3 | Реестр пакетов (OSV) |
| opensuse:dracut-saltboot | 0.1.1665997480.587fa10-150000.1.41.1 · openSUSE:Leap 15.3 | Реестр пакетов (OSV) |
| opensuse:golang-github-boynux-squid_exporter | 1.6-150000.1.9.1 · openSUSE:Leap 15.3 | Реестр пакетов (OSV) |
| opensuse:golang-github-prometheus-promu | 0.13.0-150000.3.9.1 · openSUSE:Leap 15.3 | Реестр пакетов (OSV) |
| opensuse:grafana | 8.3.5-150200.3.21.1 · openSUSE:Leap 15.3 | Реестр пакетов (OSV) |
| opensuse:prometheus-blackbox_exporter | 0.19.0-150000.1.14.3 · openSUSE:Leap 15.4 | Реестр пакетов (OSV) |
| opensuse:prometheus-postgres_exporter | 0.10.0-150000.1.3.1 · openSUSE:Leap 15.3 | Реестр пакетов (OSV) |
| opensuse:rhnlib | 4.2.6-150000.3.34.1 · openSUSE:Leap 15.3 | Реестр пакетов (OSV) |
| opensuse:spacecmd | 4.2.16-150000.3.77.1 · openSUSE:Leap 15.3 | Реестр пакетов (OSV) |
| opensuse:wire | 0.5.0-150000.1.9.3 · openSUSE:Leap 15.4 | Реестр пакетов (OSV) |
| suse:grafana | 8.3.5-150000.1.30.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:mgr-cfg | 4.2.8-150000.1.24.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:mgr-osad | 4.2.8-150000.1.36.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:mgr-push | 4.2.5-150000.1.18.2 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:mgr-virtualization | 4.2.4-150000.1.26.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:prometheus-postgres_exporter | 0.10.0-150000.1.3.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:rhnlib | 4.2.6-150000.3.34.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:spacecmd | 4.2.16-150000.3.77.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:spacewalk-client-tools | 4.2.18-150000.3.59.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:spacewalk-koan | 4.2.6-150000.3.27.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:spacewalk-oscap | 4.2.4-150000.3.18.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
| suse:suseRegisterInfo | 4.2.6-150000.3.21.1 · SUSE:Manager Client Tools 15 | Реестр пакетов (OSV) |
Статус эксплойта
Есть proof of concept
Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.
Доказательство
- Шаблон обнаружения Nuclei ×1
Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.
| Источник | Тип | Дата |
|---|---|---|
| Шаблон обнаружения Nuclei | Шаблон Nuclei CVE-2021-41174 | — |
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Истории пока нет (накапливается ежедневным заданием EPSS).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
- Grafana Labs - Vulnerability Disclosure Program (VDP)Intigriti · только раскрытие (VDP) · grafana/grafana
- Grafana Labs - Vulnerability Disclosure Program (VDP)Intigriti · только раскрытие (VDP)
Вендор продукта присутствует в публичной программе. Сопоставление по имени; проверьте текст scope в программе.
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Пользователь должен открыть ссылку или посетить страницу.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- низкое · данные могут быть прочитаны
- Целостность
- низкое · данные или конфигурация могут быть изменены
- Доступность
- нет
Влияние может выйти за пределы уязвимого компонента (область действия меняется).
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Требуется
- Область действия
- Изменяется
- Влияние на конфиденциальность
- Низкое
- Влияние на целостность
- Низкое
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-79 · Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')Вектор CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
nvd-primary
Первопричина
Пользовательский контент вставляется в страницу как 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
—
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 4)Свернуть
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.