Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/drkim-dev/cve-2026-30862
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеRed Teaming
GitHubdrkim-dev/cve-2026-30862

CVE-2026-30862

Proof-of-concept, демонстрирующий хранимую XSS-уязвимость в Table Widget приложения Appsmith, приводящую к вертикальному повышению привилегий и полному захвату учётной записи администратора через атаку XSS-to-CSRF.

Репозиторий
214 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-30862 PoC — Повышение привилегий в Appsmith

Proof-of-Concept для повышения привилегий в Appsmith через хранимый XSS

Раскрытие: Изначально сообщено мной через GHSA-5hw4-whxv-6794

⚠️ Только для авторизованного пентестинга/исследований.

Информация об уязвимости

ПолеЗначение
ID CVECVE-2026-30862
Серьёзность🔴 Критическая
Оценка CVSS9.1
Вектор CVSS[CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H]
CWECWE-79, CWE-269, CWE-352
Затронутый продуктAppsmith ≤ 1.95
Исправленная версия1.96
КонсультацияGHSA-5hw4-whxv-6794

CVE-2026-30862: Критический хранимый XSS и повышение привилегий в Appsmith v1.95

Краткое описание

Критическая уязвимость хранимого XSS существует в виджете таблицы (TableWidgetV2). Основная причина — отсутствие санитизации HTML в конвейере рендеринга компонентов React, что позволяет внедрять вредоносные атрибуты в DOM. Используя функцию «Пригласить пользователей», злоумышленник с обычной учётной записью ([email protected]) может заставить системного администратора выполнить высокопривилегированный вызов API (/api/v1/admin/env), что приведёт к полному захвату административной учётной записи.


Подробности

1. Основная причина: отсутствие приёмника санитизации вывода Уязвимость находится в движке рендеринга виджета таблицы

  • Файл: app/client/src/widgets/TableWidgetV2/component/cellComponents/BasicCell.tsx

  • Компонент BasicCell не выполняет санитизацию данных, когда для columnType установлено значение URL или Plain Text. Он возвращает необработанные значения, предоставленные пользователем, которые напрямую отображаются как дочерние элементы React, и браузер интерпретирует их как исполняемый HTML.

Фрагмент уязвимого кода (строки 132–143 и 172–173):

root@kitploit:~
const contentToRender = useMemo(() => {
  switch (columnType) {
    case ColumnTypes.URL:
      // Прямая интерполяция 'url' в href без санитизации
      return <a href={url} target="_blank">{value}</a>;
    default:
      return value; // Строка 141: возвращается необработанное значение
  }
}, [columnType, url, value]);

// Строка 173: конечный приёмник, где несанитизированный контент внедряется в DOM
<Content ref={contentRef}>{contentToRender}</Content>

2. Вектор атаки: XSS-to-CSRF через социальную инженерию (функция приглашения) Хотя файл cookie SESSION защищён с помощью HttpOnly, токен XSRF-TOKEN доступен через document.cookie. Поскольку Appsmith позволяет любому пользователю «приглашать» других в своё приложение, злоумышленник может использовать это как механизм доставки для выполнения подделки межпривилегированных запросов (CPRF) в активной сессии администратора.


PoC (Proof of Concept)

Шаг 1: Проверка уязвимости XSS

  1. Войдите с обычной учётной записью: [email protected].

  2. Создайте новое приложение и добавьте виджет таблицы.

  3. В свойстве Table Data внедрите следующее:

root@kitploit:~
[{ "id": 1, "payload": "" }]
  1. Наблюдайте выполнение alert(), подтверждающее обход санитизации.

-- Шаг 2: Вооружение (полный захват администратора)

  1. Войдя как [email protected], обновите Table Data следующим payload, предназначенным для изменения административной среды:
root@kitploit:~
[
  {
    "id": 1,
    "Status": "System Update Required",
    "payload": "alert('Admin Privileges Granted to [email protected]'));\">"
  }
]
  1. Используйте функцию «Поделиться», чтобы пригласить системного администратора ([email protected]) в приложение. Это заставит администратора просмотреть вредоносную таблицу при открытии приглашения.

  2. Как только администратор запустит приложение, скрипт выполнится в фоновом режиме. Он считывает XSRF-TOKEN администратора и отправляет запрос PUT для добавления [email protected] в административный белый список.

  3. Результат: снова войдите как [email protected]. Теперь у вас будет полный доступ к настройкам администратора и всем конфигурациям экземпляра.


Воздействие

  • Тип уязвимости: хранимый XSS / вертикальное повышение привилегий.

  • Серьёзность: 9.1 (критическая) | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H

  • Риск: полная компрометация экземпляра Appsmith. Злоумышленники получают доступ к конфиденциальным переменным окружения, учётным данным базы данных и возможность изменять любое приложение в экземпляре.


Рекомендуемое исправление

  1. Санитизация приёмников: оберните все динамические выходные данные в BasicCell.tsx и связанных компонентах с помощью DOMPurify.sanitize().

  2. Ужесточённая CSP: внедрите строгую политику connect-src, чтобы предотвратить несанкционированные вызовы API к административным конечным точкам из XSS-пейлоадов.


https://github.com/user-attachments/assets/206a10e4-1619-4887-a552-99761baa0a29

Скачать инструмент