🔍 Наиболее интересные уязвимости
🐛 CVE-2026-22688, обнаруженная в WeKnora в версиях до 0.2.5, приводит к OS Command Injection. Проблема заключалась в том, что аутентифицированный пользователь мог подставлять значения
🐛 CVE-2026-22244, выявленная в OpenMetadata в версиях до 1.11.4, приводит к Server-Side Template Injection (SSTI). Уязвимость обусловлена тем, что злоумышленник с административными правами мог добиться интерпретации опасных конструкций в шаблонах, что в итоге позволяет выполнить код на стороне сервера. В исправлении добавили настройки безопасности для обработчика FreeMarker-шаблонов.
🐛 CVE-2025-68705, обнаруженная в RustFS в версиях с 1.0.0-alpha.13 до 1.0.0-alpha.78, приводит к Path Traversal. Проблема заключалась в том, что имя объекта, приходящее в запросе на эндпоинт
🐛 CVE-2026-22610, выявленная в Angular в версиях до 19.2.18, 20.3.16, 21.0.7 и 21.1.0-rc.0, приводит к Cross-Site Scripting (XSS). Уязвимость обусловлена тем, что внутренняя схема санитизации в компиляторе шаблонов не распознавала
🐛 CVE-2025-68428, обнаруженная в jsPDF в версиях до 4.0.0, приводит к Path Traversal. Проблема заключалась в том, что при контроле аргументов метода
🐛 CVE-2026-22688, обнаруженная в WeKnora в версиях до 0.2.5, приводит к OS Command Injection. Проблема заключалась в том, что аутентифицированный пользователь мог подставлять значения
stdio_config.command/args в MCP stdio-настройки, после чего сервер запускал subprocess с этими значениями, что открывает возможность выполнения произвольных команд на сервере. В исправлении добавили явную валидацию stdio_config (command/args) при создании/обновлении MCP-сервиса: подозрительные/небезопасные значения больше не принимаются и не доходят до запуска процесса.🐛 CVE-2026-22244, выявленная в OpenMetadata в версиях до 1.11.4, приводит к Server-Side Template Injection (SSTI). Уязвимость обусловлена тем, что злоумышленник с административными правами мог добиться интерпретации опасных конструкций в шаблонах, что в итоге позволяет выполнить код на стороне сервера. В исправлении добавили настройки безопасности для обработчика FreeMarker-шаблонов.
🐛 CVE-2025-68705, обнаруженная в RustFS в версиях с 1.0.0-alpha.13 до 1.0.0-alpha.78, приводит к Path Traversal. Проблема заключалась в том, что имя объекта, приходящее в запросе на эндпоинт
/rustfs/rpc/read_file_stream, могло содержать символы обхода пути, из-за чего атакующий мог выйти за пределы ожидаемого каталога и читать произвольные файлы. В исправлении добавили санитизацию путей.🐛 CVE-2026-22610, выявленная в Angular в версиях до 19.2.18, 20.3.16, 21.0.7 и 21.1.0-rc.0, приводит к Cross-Site Scripting (XSS). Уязвимость обусловлена тем, что внутренняя схема санитизации в компиляторе шаблонов не распознавала
href и xlink:href у SVG <noscript> как контекст Resource URL, из-за чего потенциально опасные URL могли проходить обработку недостаточно строго. В исправлении добавили списки тэгов, которые должны проходить санитизацию🐛 CVE-2025-68428, обнаруженная в jsPDF в версиях до 4.0.0, приводит к Path Traversal. Проблема заключалась в том, что при контроле аргументов метода
loadFile(), можно было передать путь к локальному файлу на диске, и его содержимое попадало в итоговый PDF «как есть», что приводит к чтению произвольных файлов. В исправлении доступ к файловой системе запретили по умолчанию, чтение с диска теперь требует явного разрешения, например, через опцию allowFsRead.👍3
Первая рабочая неделя в году — самая сложная. Дальше — будет легче (мы узнавали) 🙂
С другой стороны, из этого следует, что правильная половина первой рабочей пятницы в году — самая приятная, разве нет?🎅
С другой стороны, из этого следует, что правильная половина первой рабочей пятницы в году — самая приятная, разве нет?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9😁7👍2
Forwarded from Искусство. Код... ИИ?
Трейд-оффы современных языков программирования
Надеюсь, никакой ящик Пандоры я этим постом не открою...🫣 Для контекста:
Последнее время плотно занимаюсь оценкой фичей безопасности, которые предлагают те или иные языки программирования и экосистемы. Пост (точнее — статью) об этом попозже обязательно опубликую, а пока захотелось поделиться побочным результатом этого ресерча: сравнением популярных языков в рамках «дешево-быстро-безопасно — выбери любые два».
Для каждого языка сформулировал оценку по 10-бальной шкале, относительно трех критериев разработки:
• Совокупная стоимость. Интегральная оценка по всем видам затрат, к которым приводит разработка на этом языке: оптимальная численность и стоимость команд, затраты на тестирование, инфру и поддержку.
• Скорость. По сути — временная стоимость стори-поинта в проекте медианной сложности (веб, энтерпрайз, облака).
• Безопасность. Уровень безопасности, гарантируемый стандартной поставкой языка и его рантайма.
Проставляя оценки по первым двум критериям, опирался на материалы, наиболее интересные из которых, приведены ниже. Там, где не получалось опираться, давал субъективную оценку, исходя из собственного опыта. Оценку по третьему критерию брал из упомянутого выше ресерча, основанного большей частью на аналитике по спекам и докам языков, и их экосистем, и CVE, которыми страдали написанные на них проекты.
Там, где семейство языков объединено единой экосистемой (.NET, JVM, Node) рассматривал общие для всего семейства свойства, т.к. глубоко убежден, что хотя конкретные языки и могут отличаться друг от друга по заданным критериям, определяющим фактором здесь остается все же их экосистема.
Затем, с помощью полученных оценок, plotly.js итакой-то матери ChatGPT, сделал визуализацию всего этого, скрины которой вы видите выше. Для желающих покрутить 3D-сцену мышкой, скину в комментах HTML.
Примечательно то, что никак не подгоняя изначально данные оценки, и построив по ним на диаграммах Pareto Front (по всем трем критериям), получил ровно три языка, упомянутые в цитате из своих новогодних инсайтов. Pareto Front в данном случае обозначает языки, представляющие все рационально допустимые компромиссы при выборе стека (говоря иными словами — остальные нет смысла учитывать при выборе по этим критериям, т.к. результат будет заведомо хуже).
Разумеется, когда, например, есть готовая и сработавшаяся команда, особенно с уже существующей и стабильной кодовой базой, критерии и способ их подсчета должны быть уже слегка другие. Так что, эти диаграммы скорее о том, на какие языки стоит ориентироваться при старте новых проектов с абсолютного нуля, как минимум.
📰 Материалы, помогавшие делать оценку (заслуживающие внимания):
• Top 8 Most Demanded Programming Languages
• The 9 cost factors
• What Is the Most Secure Coding Language?
• 2025 Stack Overflow Developer Survey
• Which Programming Language Has the Most Vulnerabilities?
⚠ TL;DR: в любой непонятной ситуации используйте Python, Go или Rust. В любой понятной — выбирайте язык с умом, под задачу, команду и предметную область. C/C++ не используйте, если можете 🙂
Надеюсь, никакой ящик Пандоры я этим постом не открою...
Rust неплохой язык, на нём интересно писать… пет-проекты в соло и то, для чего раньше стоило бы взять C/C++. Для наших прототипов и нетребовательного прода — всё ещё Python, для всего остального — Go.
Последнее время плотно занимаюсь оценкой фичей безопасности, которые предлагают те или иные языки программирования и экосистемы. Пост (точнее — статью) об этом попозже обязательно опубликую, а пока захотелось поделиться побочным результатом этого ресерча: сравнением популярных языков в рамках «дешево-быстро-безопасно — выбери любые два».
Для каждого языка сформулировал оценку по 10-бальной шкале, относительно трех критериев разработки:
• Совокупная стоимость. Интегральная оценка по всем видам затрат, к которым приводит разработка на этом языке: оптимальная численность и стоимость команд, затраты на тестирование, инфру и поддержку.
• Скорость. По сути — временная стоимость стори-поинта в проекте медианной сложности (веб, энтерпрайз, облака).
• Безопасность. Уровень безопасности, гарантируемый стандартной поставкой языка и его рантайма.
Проставляя оценки по первым двум критериям, опирался на материалы, наиболее интересные из которых, приведены ниже. Там, где не получалось опираться, давал субъективную оценку, исходя из собственного опыта. Оценку по третьему критерию брал из упомянутого выше ресерча, основанного большей частью на аналитике по спекам и докам языков, и их экосистем, и CVE, которыми страдали написанные на них проекты.
Там, где семейство языков объединено единой экосистемой (.NET, JVM, Node) рассматривал общие для всего семейства свойства, т.к. глубоко убежден, что хотя конкретные языки и могут отличаться друг от друга по заданным критериям, определяющим фактором здесь остается все же их экосистема.
Затем, с помощью полученных оценок, plotly.js и
Примечательно то, что никак не подгоняя изначально данные оценки, и построив по ним на диаграммах Pareto Front (по всем трем критериям), получил ровно три языка, упомянутые в цитате из своих новогодних инсайтов. Pareto Front в данном случае обозначает языки, представляющие все рационально допустимые компромиссы при выборе стека (говоря иными словами — остальные нет смысла учитывать при выборе по этим критериям, т.к. результат будет заведомо хуже).
Разумеется, когда, например, есть готовая и сработавшаяся команда, особенно с уже существующей и стабильной кодовой базой, критерии и способ их подсчета должны быть уже слегка другие. Так что, эти диаграммы скорее о том, на какие языки стоит ориентироваться при старте новых проектов с абсолютного нуля, как минимум.
• Top 8 Most Demanded Programming Languages
• The 9 cost factors
• What Is the Most Secure Coding Language?
• 2025 Stack Overflow Developer Survey
• Which Programming Language Has the Most Vulnerabilities?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍6❤4👎4🔥2😐1
🔍 Наиболее интересные уязвимости
🐛 CVE-2026-23626, обнаруженная в Kimai в версиях до 2.46.0, приводит к Server-Side Template Injection (SSTI). Проблема заключалась в том, что Twig Sandbox использовал слишком разрешительную политику безопасности (
🐛 CVE-2026-0858, выявленная в plantuml до версии 1.2026.0, приводит к Cross-site Scripting (XSS). Проблема заключалась в возможности злоумышленника внедрить произвольный JS-код в генерируемый SVG через PlantUML-схемы и выполнить его в контексте приложения. В исправлении убрали генерацию SVG.
🐛 CVE-2026-23527, выявленная в H3 до версии 1.15.5, приводит к HTTP Request Smuggling. Уязвимость обусловлена тем, что метод
🐛 CVE-2026-22812, обнаруженная в OpenCode до версии 1.0.216, приводит к Remote Code Execution (RCE). Проблема заключалась в возможности выполнения произвольных команд через HTTP-сервер, к которому можно было обратиться с произвольного адреса из-за неправильных настроек CORS. В исправлении в настройки CORS добавили "белый" список адресов с которых можно отправлять запросы: разрешается только для
🐛 CVE-2026-23745, обнаруженная в node-tar в версиях до 6.2.3, приводит к Path Traversal. Проблема заключалась в том, что при
🐛 CVE-2026-23626, обнаруженная в Kimai в версиях до 2.46.0, приводит к Server-Side Template Injection (SSTI). Проблема заключалась в том, что Twig Sandbox использовал слишком разрешительную политику безопасности (
DefaultPolicy), из-за чего аутентифицированный пользователь мог извлекать чувствительные данные. В исправлении DefaultPolicy жёстко ограничили допустимые вызовы: запретили доступ к ServerBag и SessionInterface, для AppVariable оставили только getRequest/getUser/getLocale, а у User явно заблокировали методы, возвращающие секреты🐛 CVE-2026-0858, выявленная в plantuml до версии 1.2026.0, приводит к Cross-site Scripting (XSS). Проблема заключалась в возможности злоумышленника внедрить произвольный JS-код в генерируемый SVG через PlantUML-схемы и выполнить его в контексте приложения. В исправлении убрали генерацию SVG.
🐛 CVE-2026-23527, выявленная в H3 до версии 1.15.5, приводит к HTTP Request Smuggling. Уязвимость обусловлена тем, что метод
readRawBody() проверял заголовок Transfer-Encoding на наличие значения chunked регистрозависимо, что позволяло обойти логику парсинга тела запросов и создать условия для десинхронизаци. В исправлении проверку заменили на регистронезависимую c помощью /\bchunked\b/i.test(). 🐛 CVE-2026-22812, обнаруженная в OpenCode до версии 1.0.216, приводит к Remote Code Execution (RCE). Проблема заключалась в возможности выполнения произвольных команд через HTTP-сервер, к которому можно было обратиться с произвольного адреса из-за неправильных настроек CORS. В исправлении в настройки CORS добавили "белый" список адресов с которых можно отправлять запросы: разрешается только для
http://localhost:*, http://127.0.0.1:* и https://*.opencode.ai. 🐛 CVE-2026-23745, обнаруженная в node-tar в версиях до 6.2.3, приводит к Path Traversal. Проблема заключалась в том, что при
preservePaths=false значение entry.path проверялось на наличие символов обхода пути, но для entry.linkpath аналогичная проверка не производилась, из-за чего злоумышленник мог добиться записи файлов вне директории распаковки. В исправлении валидацию вынесли в отдельную процедуру и применили её и к path, и к linkpath: запрещают .. в сегментах и корректно убирают абсолютный префикс у обоих полей.❤1👍1
У всех закрыты все тикеты в таск-трекере? 😬 Ну и правильно, пятница же, тут о другом пора подумать... 🍺 🕺
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13❤🔥5🔥1💔1