Positive Development Community
3.15K subscribers
1.4K photos
219 videos
4 files
457 links
Download Telegram
🔍 Наиболее интересные уязвимости

🐛 CVE-2025-61769, обнаруженная в emlog (версии до и включая 2.5.22), приводит к Cross-Site Scripting (XSS). Проблема заключалась в возможности загрузки .svg файлов с внедрённым JavaScript через функционал загрузки файлов. В исправлении расширение .svg было добавлено в список "черный" список

🐛 CVE-2025-61913, обнаруженная в FlowiseAI (версии до 3.0.8), приводит к Path Traversal. Проблема заключалась в отсутствии ограничений на пути файлов в WriteFileTool() и ReadFileTool(). В исправлении добавлена проверка и ограничение разрешённых директорий для операций с файлами.

🐛 CVE-2025-59146, обнаруженная в QuantumNous (версии до 0.9.0.5), приводит к Server-Side Request Forgery (SSRF). Проблема заключалась в отсутствии валидации пользовательских URL перед серверным запросом. В исправлении реализована фильтрация адресов и предотвращение доступа к внутренним ресурсам.

🐛 CVE-2025-61773, обнаруженная в pyload (версии до 0.5.0b3.dev91), приводит к Cross-Site Scripting (XSS). Проблема заключалась в отсутствии валидации и экранирования пользовательских параметров в Captcha script и Click'N'Load Blueprint. В исправлении добавлены проверки и экранирование входных данных.

🐛 CVE-2025-61787, обнаруженная в denoland (версии до 2.5.3 и 2.2.15), приводит к OS Command Injection. Проблема заключалась в том, что при запуске batch-файлов на Windows через CreateProcess() всегда неявно использовался cmd.exe, что позволяло внедрять команды ОС. В исправлении добавлена явная проверка и ограничение запуска batch-файлов для предотвращения инъекций.
1👍31😢1💯1
Ну что, пора заканчивать неправильную часть пятницы и переходить к правильной? Всем поскорее осуществить переход и ещё пару дней из него не возвращаться 😌🫶
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍3🔥3🤣3
🧩 Принципы и паттерны безопасной разработки: OCP и fail-closed

(Open/Closed Principle) — классы и функции открыты для расширения, но закрыты для модификации. Говоря проще: проектируем приложение так, чтобы для новых фичей требовались минимальные изменения в уже существующем (протестированном и стабильном, ну... как правило) коде.

С точки зрения безопасности, это снижает риски сломать уже существующие защитные меры и получить на ровном месте регрессии вроде:

CWE-840 — логическая уязвимость из-за изменения условий
CWE-489 — ослабление проверки при модификации кода

... и охапки прочих, на правах их прямых последствий.

🐛 Жизненное

В Apache HTTPD (CVE-2021-41773) разработчики изменили ядро обработки путей — и открыли обход директорий ../. Если бы новую логику добавили отдельным модулем, а не правили существующую, старая проверка осталась бы нетронутой.

Та же история с Dirty Pipe (CVE-2022-0847) в Linux: неаккуратная «оптимизация» существующего кода pipe нарушила старые гарантии → повышение локальных привилегий.

💡 Пример: PEP-750, t-строки и шаблоны

По мотивам предыдущего поста: t"..." создаёт объект Template, а его части (Interpolation) форматируются по format_spec. Здесь напрашивается типичная ошибка — дописывать в обработчике if/elif для новых форматов (HTML, SQL, shell). Каждый раз приходится лезть в уже написанный код, и, тем самым, нарушать OCP.

Плохой пример:
def render(t):
for part in t:
if spec == "html":
out.append(html_escape(v))
elif spec == "sql":
out.append(sql_param(v))
else:
out.append(format(v))


Новый формат → новая ветка → новый риск сломать там что-то ранее работавшее (вспоминаем goto fail;).

Хороший пример:
_handlers = []

def register(h): _handlers.append(h); return h

def render(t):
for it in t:
if isinstance(it, str): yield it
elif h := next((h for h in _handlers if h.supports(it)), None):
yield h.apply(it)
else:
raise ValueError(f"Unsupported spec: {it.format_spec}")

@register
class HtmlHandler:
def supports(self, it): return it.format_spec.startswith("html")
def apply(self, it): return html_escape(str(it.value))


Ядро неизменно — добавляем только новые обработчики, неизвестные спецификации блокируются (fail-closed*): безопаснее, предсказуемее, тестируется в разы проще.

*️⃣ Fail-closed (безопасный отказ) — принцип проектирования, при котором система в случае ошибки или неопределённости выбирает безопасное поведение, даже если это мешает работе.

Примеры:

• парсер не знает формат входных данных → отклоняет запрос;
• фильтр не смог проверить токен → доступ запрещён;
• обработчик t-строк встретил неизвестный `format_spec` → бросает исключение вместо неэкранированного вывода.

Такой подход предотвращает «тихие» обходы проверок и делает поведение системы предсказуемым даже при сбоях.


⚠️ OCP — не догма


«Модификация» в OCP не про рефакторинг, баги или уязвимости. Если в существующем коде нашли нашли проблему, то нужно править. Безопасность и здравый смысл приоритетнее. OCP всё же — не тотальный запрет на изменения, а гигиена расширяемости: добавление фичей, без изменения того, что уже защищено и протестировано.

TL;DR:
• Стоит разумно следовать OCP, чтобы не сломать защиту, добавляя фичи.
• Расширять, а не модифицировать, если речь не идёт о рефакторинге, багах или уязвимостях.
• Из-за нарушений OCP «увидели свет» многие, в том числе именитые, CVE.
3👍2
🔍 Наиболее интересные уязвимости

🐛 CVE-2025-62364, обнаруженная в oobabooga (версии до 3.14), приводит к Local File Inclusion (LFI). Проблема заключалась в обработке загрузки файлов, где приложение следовало символическим ссылкам и раскрывало содержимое произвольных файлов. В исправлении была добавлена жёсткая проверка пути и блокировка symlink: введена функция open_image_safely() с os.path.islink() и проверкой существования файла, UI-компоненты Gradio переключены с type='pil' на type='filepath', чтобы работать с путями и применять валидацию до открытия изображения.

🐛 CVE-2025-62156, обнаруженная в argoproj Argo Workflows (версии до 3.6.12 и 3.7.0–3.7.2), приводит к Path traversal. Проблема заключалась в отсутствии проверки, что header.Name при распаковке архива остаётся внутри целевой директории, что позволяло создавать или перезаписывать файлы вне /work/tmp, включая системные каталоги. В исправлении добавлена валидация результирующего пути: отклоняются абсолютные и traversal-пути, а извлекаемые записи разрешаются только если их итоговый путь остаётся префиксом директории назначения.

🐛 CVE-2025-62374, обнаруженная в Parse Javascript SDK (версии до 7.0.0), приводит к Prototype Pollution. Проблема заключалась в возможности инъекции вредоносного кода через функции ParseObject.fromJSON и другие, что позволяло удаленно выполнять произвольный код. В исправлении была добавлена валидация и фильтрация опасных ключей при сериализации/десериализации и регистрации классов, ужесточена проверка типов и отказ при обнаружении недопустимых путей.

🐛 CVE-2025-11849, обнаруженная в mammoth (версии до 1.11.0), приводит к Path traversal. Проблема заключалась в отсутствии проверки пути или типа файла при обработке docx-файла с изображением, содержащим внешний r:link, что позволяет читать произвольные файлы. В исправлении была по умолчанию отключена работа с внешними файлами: externalFileAccess переведён в false в стандартных опциях.

🐛 CVE-2025-62413, обнаруженная в MQTTX (версия 1.12.0), приводит к Cross-site Scripting (XSS). Проблема заключалась в некорректной обработке рендеринга MQTT message payload, что позволяло выполнять произвольные скрипты через HTML или JavaScript в контексте UI приложения. В исправлении была добавлена безопасная обработка XML-пейлоадов: введены функции isXML() и escapeXmlForHtml(), а в компоненте TreeNodeInfo.vue при определении формата xml вывод переведён на экранированный текст.
👩‍💻 Почему классические SAST-методы не справляются с логическими уязвимостями и как с этим быть? Статья от Радды Юрьевой (Positive Technologies) рассматривает архитектуру системы анализа смарт-контрактов на Solidity, реализующую гибридный подход с графовыми, семантическими и лексическими модулями, дополненный RAG-компонентом по базам SWC/CVE.
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥43
Итоги State of DevOps Russia 2025 
 
На вебинаре представим результаты «Исследования состояния DevOps в России 2025» — анализа индустрии, основанного на опросе более 4000 специалистов. Ежегодно «Экспресс 42» вместе с партнёрами выявляет технологические тренды и оценивает их влияние на эффективность разработки. В эфире примет участие Антон Жаболенко, директор по продуктам application security Positive Technologies, обсудит результаты исследования и поделится опытом построения DecSecOps.
 
Помимо ИБ в этом году исследовали Developer Experience, ИИ- и DevOps-инструменты, Kubernetes, внутренние платформы для разработки.
 
Вы узнаете: 
• какие инструменты сейчас популярны;
• какие характеристики Developer Experience отличают высокоэффективные команды;
• для каких задач используют ИИ-инструменты;
• как внедряют ИБ в процесс разработки;
• какие цели развития у внутренних платформ для разработки;
• какие изменения произошли на рынке труда за год.
 
Ждём вас на вебинаре!
 
Онлайн | 31 октября в 12:00
Зарегистрироваться
https://clc.to/web_7sod25
👍21🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣156🔥5