Positive Development Community – Telegram
Positive Development Community
3.14K subscribers
1.43K photos
226 videos
4 files
464 links
Download Telegram
У всех закрыты все тикеты в таск-трекере? 😬 Ну и правильно, пятница же, тут о другом пора подумать... 🍺🕺
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13❤‍🔥5🔥1💔1
🔍 Наиболее интересные уязвимости

🐛 CVE-2026-24490, обнаруженная в MobSF в версиях до 4.4.5, приводит к Cross-Site Scripting (XSS). Проблема заключалась в том, что при разборе AndroidManifest.xml MobSF вытаскивал значение android:host и подставлял его напрямую в HTML-строку заголовка отчёта, что позволяло выполнить произвольный JS код при анализе apk-файла. В исправлении добавили экранирование значений из AndroidManifest.xml с помощью внутреннего метода escape_manifest_attribute()

🐛 CVE-2026-23524, обнаруженная в Laravel Reverb в версиях 1.6.3 и ниже, приводит к Remote Code Execution (RCE). Проблема заключалась в том, что данные из Redis-канала напрямую передавались в unserialize() без ограничений, из-за чего злоумышленник мог инициировать десериализацию произвольных объектов. В исправлении вызовы unserialize() перевели на режим "белых" списков: добавили ['allowed_classes' => [Application::class]] для application и ['allowed_classes' => [Application::class, PendingMetric::class, MetricType::class]] для payload, тем самым запретив десериализацию произвольных объектов.

🐛 CVE-2025-13465, обнаруженная в lodash в версиях 4.0.0–4.17.22, приводит к Prototype Pollution. Проблема заключалась в том, что через операции вроде _.unset/_.omit можно было удалять методы из глобальных прототипов, что открывает путь к модификации поведения объектов в приложении. В исправлении переработали метод baseUnset(): ограничили доступ к ключу proto, а также к constructor.prototype.

🐛 CVE-2026-23947, обнаруженная в Orval в версиях до 7.19.0 (ветка 7.x) и до 8.0.2 (ветка 8.x), приводит к Remote Code Execution (RCE). Проблема заключалась в том, что значения ключа x-enumDenoscriptions попадали в генерируемый TypeScript-код без корректного экранирования, что позволяло внедрить произвольный JS/TS в итоговые файлы. В исправлении добавили экранирование x-enumNames и x-enumDenoscriptions с помощью метода jsStringEscape().

🐛 CVE-2025-64087, обнаруженная в xdocreport в версиях с 1.0.0 по 2.1.0, приводит к Server-Side Template Injection (SSTI). Проблема заключалась в том, что злоумышленник мог выполнять произвольный код путем внедрения специально созданных выражений шаблонов. В исправлении добавили механизмы безопасности в конфигурацию: выставили Configuration.NEW_BUILTIN_CLASS_RESOLVER_KEY в значение "safer", чтобы заблокировать опасную инстанцирование классов через оператор ?new.
👍2
🤝 Пара интересных RCE в n8n

Похоже, за n8n взялись всерьез (ну... неудивительно). Если дело так пойдет и дальше, придется заводить под их уязвимости отдельную рубрику.

Разбор упомянутых CVE в деталях можно почитать здесь, «из первых рук», так сказать. В чем суть, вкратце. Обе RCE — ответочка от jFrog на уже реализованные разработчиками n8n меры по устранению ранее обнаруженных уязвимостей, которые в итоге и привели к новым CVE-2026-1470 и CVE-2026-0863. Дело в том, что когда возможность выполнения пользователями <относительно> произвольного кода становится официальной фичей, вопрос безопасной реализации подобной функциональности слегка усложняется. Разработчики n8n пошли по пути синтаксической валидации пользовательского кода на уровне AST в обоих случаях (JavaScript, Python): код разбирается в синтаксическое дерево, дерево обходится визитором, осуществляющим детектирование потенциально опасных узлов.

И это — фиговое решение, как минимум по двум причинам.

1️⃣ Во-первых, по своей сути — это контроль по черным спискам. Собственно, патчи к этим уязвимостям (раз, два) разработчики свели к добавлению в эти списки техник атак, продемонстрированных ресерчерами jFrog. Сколько ещё вариантов поиграться с синтаксисом этих языков для подобных RCE существует прямо сейчас — думаю, jFrog'и скоро расскажут. А, как скоро в новых версиях языков появятся конструкции, не предусмотренные в черных списках n8n, но позволяющие выстроить гаджеты для вот таких RCE — покажет время.

2️⃣ Во-вторых, проверки на уровне AST — это синтаксическая валидация. У всех языков, помимо синтаксиса, есть ещё и семантика. А у динамических языков (коими являются, и JavaScript, и Python), некоторая её часть является сущностью времени выполнения. И эта часть НЕ МОЖЕТ быть эффективно проанализирована статическими проходами по синтаксическому представлению. Иными словами, даже белые списки (исходя из того, что в них было бы необходимо разрешить в свете соответствующих фич n8n) здесь не позволили бы закрыть все потенциальные проблемы.

🤓 Как правильно работать с такими кейсами?

Простых решений, здесь, увы можно не ожидать. По возрастанию упоротости трудозатрат на реализацию:

1. Если есть возможность влиять на язык, используемый для скриптов, то взять ограниченный валидацией по белым спискам (разрешенные синтаксические конструкции, пространства имен и типы) статический язык с сильной типизацией. Из известных мне языков на эту роль лучше всего подходит C# Scripting.

2. На этапе прохода по AST инструментировать код проверками на допустимость операций, которые будут осуществляться в рантайме, во время выполнения скрипта. В идеале библиотека рантайма и используемые сторонние библиотеки также должны быть инструментированы (реализацию можно подсмотреть в OpenTelemetry, например). В пределе — это приведет к разработке собственного RASP, заточенного под фичи скриптинга конкретного проекта.

3. Использовать собственноручно пропатченные интерпретаторы, допускающие только разрешенные синтаксис и семантику. Настолько сложно, что в большинстве случаев нецелесообразно.

Ну и, безотносительно способа первичной защиты: выполнять все пользовательские скрипты в изолированных контейнерах: как минимум — в Docker, как рациональный максимум — в условном FireCracker'е.

TL;DR: разработчики n8n думают, что устранили ещё две RCE, но есть нюанс. И простого способа его обойти у них нет.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
Forwarded from Positive Technologies
😎 Проверим, в безопасности ли ваше веб-приложение, и посоветуем — что делать, если нет

С этим отлично справится обновленный PT BlackBox Scanner, который проведет больше 110 проверок, а потом порекомендует, что делать с обнаруженными недостатками. Для этого мы разработали и встроили в него собственную LLM.

Она просто и доступно расскажет, откуда у вас взялись эти уязвимости, и предложит способы их пофиксить, приводя примеры корректного кода и конфигураций.


Из крутого: это бесплатно и несложно! Просто введите адрес вашего приложения на сайте сервиса.

❗️ ВАЖНО: перед сканированием нужно подтвердить, что именно вы владелец сайта, который проверяете. Базовая проверка доступна по умолчанию, а для более продвинутого сканирования понадобится регистрация.

@Positive_Technologies
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6🔥3👎2
«Последняя пятница месяца не менее важна, чем следующая за ней первая» (с) Аристотель.

Всем чудесно завершить этот важный день, и поскорее начать готовиться к следующему 🤗
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁164👍4❤‍🔥2