Positive Development Community – Telegram
Positive Development Community
3.14K subscribers
1.39K photos
212 videos
4 files
454 links
Download Telegram
Админ два раза на одни и те же грабли не наступает. Мемы на месте? Теперь очередь за вами: пятница сама себя правильно не проведет, знаете ли 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2😁2010🤣5🔥1🤯1
Уже лишь только ленивый не написал про CVE-2025-55182 aka React2Shell, пересказывая своими словами райтапы, пересказанные ранее другими авторами с пересказанных ещё кем-то постов.

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

✖️ Что НЕ сделали разработчики React'а?

Команда React не предусмотрела надёжную проверку и фильтрацию данных при десериализации входных нагрузок RSC (React Server Components). В результате они могли расширять свойства объектов без достаточной валидации (например, путём инъекции proto), что позволяло загрязнять прототипы (prototype pollution) и выполнять произвольный код на сервере.

Что делать разработчикам?

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

💻💻:

• Используйте структуры данных без прототипа: вместо пустых объектов {} применяйте Object.create(null) или литерал {__proto__: null}. Это предотвратит наследование опасных свойств от Object.prototype.

• При необходимости используйте ассоциативные коллекции — применяйте new Map() и new Set() вместо обычных объектов. У них нет «прототипа» в классическом понимании, и методы вроде .get()/.has() возвращают только значения.

• Замораживайте глобальные прототипы: например, вызов Object.freeze(Object.prototype) (и/или Object.seal) заблокирует добавление или изменение свойств базового прототипа. Это затруднит атаки, но нужно учитывать, что многие библиотеки рассчитывают на динамическое расширение объектов.

• При запуске Node.js можете указать флаг --disable-proto=delete — он полностью удалит свойство __proto__ из стандартных объектов.

• Санитизируйте имена полей при объединении/парсинге JSON: запрещайте или фильтруйте ключи вроде __proto__, prototype, constructor и подобных. Лучше всего – явно разрешать (whitelist) только ожидаемые имена полей и отбрасывать все остальное.

• Избегайте небезопасных merge-функций (например, lodash.merge, рекурсивных функций объединения объектов) при работе с внешними данными. Если мёрдж неизбежен, тщательно проверяйте, как реализована функция: нет ли в ней присвоения прототипов или вызова setattr (в JS – методов вроде Object.assign/reduce).

💻 Python:

• Не используйте pickle, или хотя бы не выполняйте pickle.loads на входных данных. Если нужна сериализация, используйте безопасный формат (JSON, json/yaml без пользовательских конструкторов).

• Избегайте рекурсивного слияния атрибутов объектов из пользовательских словарей. Любая функция типа merge(src, dst) может при наличии поля __class__ или __globals__ обойти границы объекта и изменить класс или глобальные переменные. Проверяйте, что входные данные не содержат ключей, начинающихся с __ или равных именам методов объектов.

• Ограничивайте динамическое добавление атрибутов. При необходимости используйте __slots__ в классах или явно задавайте список полей (например, через dataclasses), чтобы неизвестные атрибуты просто игнорировались. По возможности не добавляйте атрибуты в классы по именам из JSON.

• Проверяйте использование setattr и init: ни в коем случае не допускайте передачи строкового кода или списка методов для выполнения через eval/instance_eval внутри __init__ или других «магических» методов.

• Замораживайте и не раскрывайте конфиденциальные переменные: не давать внешнему коду доступ к глобальному состоянию приложения (модули, конфиг и т.д.), тем более через __globals__/__class__.

Продолжение — в следующем посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥21
🔍 Наиболее интересные уязвимости

🐛 CVE-2025-66313, обнаруженная в ChurchCRM (версии 6.2.0 и ранее), приводит к SQL Injection. Проблема заключалась в обработке параметров newFieldSec или 1FieldSec, значения которых попадали в SQL-запрос без должной параметризации, что позволяло выполнять произвольный SQL код. В исправлении значение поля проходит через InputUtils::legacyFilterInput(..., 'int') и приводится к целому числу.

🐛 CVE-2025-65959, обнаруженная в Open WebUI (версии до 0.6.37), приводит к Cross-Site Scripting (XSS). Проблема заключалась в возможности импорта Markdown файла с вредоносными SVG тегами, что позволяло выполнять произвольный JavaScript код и красть сессионные токены при скачивании заметки в формате PDF. В исправлении добавлена санитизация с помощью DOMPurify.sanitize().

🐛 CVE-2025-66448, обнаруженная в vLLM (версии до 0.11.1), приводит к Remote Code Execution (RCE). Проблема заключалась в том, что функция get_class_from_dynamic_module() загружала и выполняла код из удаленного репозитория, даже если значение флага trust_remote_code было установлено в False. В исправлении реализация Nemotron_Nano_VL_Config была полностью удалена, а также для Nemotron-модели добавили безопасную настройку.

🐛 CVE-2025-66404, обнаруженная в MCP Server Kubernetes (версии до 2.9.8), приводит к Command Injection. Проблема заключалась в передаче пользовательских команд в формате строки напрямую в интерпретатор без валидации ввода, что позволяло выполнить произвольные системные команды. В исправлении добавлена схема и сигнатура exec_in_pod изменены так, что поддерживается только массив строк, параметр shell удалён, добавлена валидация: проверка, что command — непустой массив и все элементы имеют тип string.

🐛 CVE-2025-55182, обнаруженная в React Server Components (версии 19.0.0, 19.1.0, 19.1.1 и 19.2.0), приводит к Remote Code Execution (RCE). Проблема заключалась в небезопасной десериализации данных из HTTP-запросов к Server Function endpoints, что позволяло выполнить произвольный код, вызывая нативные функции, такие как child_process.execSync(). В исправлении добавили строгую обработку ошибок, а также более безопасное разрешение модулей через hasOwnProperty(). Подробную информацию об уязвимости можно прочитать в статье.
1👍1
Forwarded from Positive Technologies
А у нас две новости о грядущем PHDays Fest ✌️

Первая — в следующем году наш киберфестиваль пройдет с 28 по 30 мая, так что открывайте свои календари и записывайте.

🤖 Подробностями поделимся позже, но уже сейчас можем сказать, что на нем мы продолжим говорить о технологиях. Более простым и понятным языком — для всех, посложнее — для специалистов по кибербезопасности и ИТ. Будет больше сцен, исследований, практики и открытых диалогов.

Вторая новость — мы открываем прием заявок на выступления как перед широкой аудиторией, так и перед экспертным сообществом.

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

👉 Узнать больше подробностей и подать заявку можно на сайте киберфестиваля PHDays.

#PHDays
@PHDays
@Positive_Technologies
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉1
Кто рано встаёт... тот зачем-то проснулся ни свет, ни заря, вместо того, чтобы от души отдохнуть и набраться сил перед правильной частью пятницы 🤷‍♂️

Хоть с мемов этот день начните, жаворонки вы наши 🤗
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣219🥰5❤‍🔥1