В пакете Net-SNMP, реализующем протоколы SNMP v1, SNMP v2c и SNMP v3, выявлена уязвимость (CVE-2025-68615), позволяющая добиться удалённого выполнения кода на сервере, использующем сервис snmptrapd для приёма и обработки trap-сообщений от устройств. По умолчанию сервис принимает запросы на 162 UDP-порту и запускается с правами root. Проблеме присвоен критический уровень опасности (9.8 из 10). Атака может быть совершена без прохождения аутентификации...Подробнее: https://www.opennet.me/opennews/art.shtml?num=64530
Есть особо одаренные, что выставляют SNMP наружу?
Снял с языка.
>что выставляют SNMP наружубывают корпсети на десятки-сотни тысяч устройств.
> бывают корпсети на десятки-сотни тысяч устройств.В корпсетях здорового человека существует отдельный административный VLAN для железяк. Из которого даже маршрута в остальные локальные сети если делать по уму нема, хочешь рулить - на рабочее место себе его отдельным планом вытащи и отдельным интерфейсом в него втыкайся.
срочно переписать на русте
Раст - новый язык, он приходит на смену устаревшим.
Основное достоинство Раста - он позволяет не задумываться о распределении памяти, а сосредоточиться непосредственно на алгоритме задачи.
А поскольку растoманы в алгоритмы без LLM не могут, то это им не помогает.
Когда я стал программировать на Расте - моя жизнь изменилась!
На форумах.
Все мои знакомые перешли на Раст, когда я рассказал им о достоинствах этого нового языка.
Ну теперь расскажи им про более новейшие язычки.
Раст - язык нового поколения, для человека новой формации, который мыслит по-новому.
на расте можно не думать, компилятор сам все проблемы решает, просто пишешь на самой свежей версии, но осторожнее с unsafe, если он появился значит в крейте нет готовых функций, просто добавить ещё один unsafe, чтобы наверняка обезопасить код.
Security? Not My Problem!
> Security? Not My Problem!именно так.. уязвимостей тут нет за ненадобностью, только фичи (документированные и не документированные)..
этот SNMP сам по себе всегда был дырой и им остается без всякой помощи от трапов
На самом деле там все намного интереснее.
Прям TEH DRAMA "Сишники и Буфер" в трех частях :)Текущий фикс это попытка исправить buffer overflow [1]
- if (trapOid[trapOidLen - 1] != 0) {
+ if (trapOidLen >= 0 && trapOid[trapOidLen - 1] != 0) {А предыдущий код c trapOid[trapOidLen - 1] != 0 появился [2] в кодовой базе как минимум 22 года назад в Jun 23, 2003, когда выполнялся рефакторинг файла snmptrapd_handlers.c.
На ветке мастер исправление "> 0" уже откатили и заменили [3] на универсальную проверку. Это переполнения trapOid было успешно исправлено всего за три попытки! Невероятный успех!
Впрочем, это не единственная проблема с trapOid [4]
Запросил добавление этого в новость, может обновят.
А выводы... выводы делайте сами :)-----------------------------------------------
[1] github.com/net-snmp/net-snmp/commit/ce1c9d4455a405d2ed8a2ac7b26b778e008e86d5
[2] github.com/net-snmp/net-snmp/commit/7236e8414ad463a0a5a1b699ad9aa2a2bf1b9342#diff-0ab05b8a4ba86a8f21ecbdc200ff67cfd4edef5d8160c161b6eab64646fe31cdR93
[3] github.com/net-snmp/net-snmp/commit/4a201ac239d2cedff32a9205d389fdb523487878
[4] github.com/net-snmp/net-snmp/commit/ce1c9d4455a405d2ed8a2ac7b26b778e008e86d5
Sbj написан c, perl, python. Переписать на rust, go, haskell не предлагаю. Однако, для новых следует задуматься или о других ЯП или найти тех, кто длину буфера проверяет каждый раз.