В библиотеке ssh, входящей в состав инструментария Erlang/OTP, выявлена уязвимость (CVE-2025-32433), позволяющая удалённо без прохождения аутентификации выполнить свой код на SSH-сервере, созданном с использованием уязвимой библиотеки. Проблема присвоен критический уровень опасности (10 из 10)...Подробнее: https://www.opennet.me/opennews/art.shtml?num=63099
На IoT, конечно, пофиксят дыру очень быстро (нет).
> На IoT, конечно, пофиксят дыру очень быстро (нет).В каком, нахрен IoT этот шланг вообще нашли? Очередной вулн где при всем его 10 из 10 долбануть почти нечего. Какой-то кучке телефонистов, конечно, прилетит.
Эрланг довольно нишевый инструмент. Здесь кичатся матаном, но чаще это защита нишевости ("Мы не как все, у нас серьёзные технологии!"). Но по факту можно годами писать на Эрланге, не зная никакой сложной математики (если не лезть в distributed algorithms, но это проблема любой distributed-системы, хоть на Go, хоть на C++). Elixir вообще позиционируется как "дружелюбный" язык - и там те же возможности, но с приятным синтаксисом. Сложность Эрланга преувеличена - она не в математике, а в смене парадигмы.
Эрланг — это не матан, эрланг — это перекладывание пакетов в сложных сетях телекома.
никто не перекидывает пакеты эрлангом, его используют для обработки сигнализационного трафика, которого мало
Эликсир эдакая замена ноде. И в плане производительности тоже. Зато скалируется хорошо. Но всё равно весьма специфично, большинство приложений не микросервисы. Матан это разве не про хаскел? Собственно, популярность хаскела вполне отражает востребованность подобного.
>Матан это разве не про хаскел?Нет, это заблуждение
>>Матан это разве не про хаскел?
> Нет, это заблуждениеМне сложно представить, кому ещё могут понадобиться функторы и монады. Как результат, единственное применение у ЯП это DSL.
В таком случае, мне не понятно, почему любая функциональщина (вроде эрланга и эликсира) должна ассоциироваться с математикой. С ней может ассоциироваться разве что вольфрам. Ну и фортран при _очень_ большом желании, больше с ним делать нечего.
>почему любая функциональщина должна ассоциироваться с математикойТак она и не должна, но кто-то это придумал и повторяет упорно.
> В таком случае, мне не понятно, почему любая функциональщина (вроде эрланга и
> эликсира) должна ассоциироваться с математикой.Наверное потому что это продвигают обычно - отбитые на всю бошку математики, которым абстракции покруче дай, хлебом не корми. То что потом эти какахи майнтайнить вообще никто не хочет, ибо раскуривать полет мысли убер-гения всем просто лениво - их не парит. Зато это парит всех остальных - и получается характерный проект, где все эти навороты фигачит 1 человек. А когда ему надоедает, или на него падает автобус, или что там блин еще - проект как раз и оказывается заброшкой. Навечно.
> ... которым абстракции покруче дай ...
> ... то что потом эти какахи майнтайнить вообще никто не хочет ...Забавно читать такое именно в этом топике.
Потому что конкретно эта бага как-раз в куске, который делали как проще, избегали переусложнения. Но оказывается чтоб тут писать и меинтейнить надо было держать в голове все условия, в которых этот "простой" код запускается, что уже не так легко.
А вот хотя бы разделили бы код на две части - до аутентификации и после, усложнили бы, но уязвимость вообще бы не возникла.
> Потому что конкретно эта бага как-раз в куске, который делали как проще,
> избегали переусложнения. Но оказывается чтоб тут писать и меинтейнить надо было
> держать в голове все условия, в которых этот "простой" код запускается,
> что уже не так легко.Честно говоря - на обычный бэкдор похоже. Очень уж тупой баг.
> А вот хотя бы разделили бы код на две части - до аутентификации и после,
> усложнили бы, но уязвимость вообще бы не возникла.Или - взяли бы готовую либу от других и не выделывались бы. Если уж упрощать. Там такие детские баги - если и были то пофикшены сто лет назад. Но не, NIH покусал. И хорошо если только NIH, а не деньги от вон тех, например.
> Мне сложно представить, кому ещё могут понадобиться функторы и монады.Кому-кому, последователям теории множеств)
А монады есть много где. Банально std::optional<T>::and_then (она даже в документации называется Monadic operations)
> Эрланг довольно нишевый инструмент.Логично, его даже создавали для телекомов.
> Здесь кичатся матаном, но чаще это защита нишевости ("Мы не как все, у нас серьёзные технологии!").
Матан это было не только про расписывать формулы Фурье и Вейерштрасса, а скорее обобщенные математические знания. Например комбинаторика.
И функциональная пардигма. Она многим взрывает мозг)> Но по факту можно годами писать на Эрланге, не зная никакой сложной математики (если не лезть в distributed algorithms
А если лезть)?
> Elixir вообще позиционируется как "дружелюбный" язык
Вот и вы рассказывайте (с)
> Сложность Эрланга преувеличена - она не в математике, а в смене парадигмы.
Точно так же можно рассказать про хаскель.
Но что-то неосиляторов на порядок больше чем для какого-то ПХП или СИ.
> Точно так же можно рассказать про хаскель.
> Но что-то неосиляторов на порядок больше чем для какого-то ПХП или СИ.Потому что представьте себе. Например мне нужно фичу в энном проекте.
1) В проекте 1 мне надо вгрузить в мою голову половину мозга кодера, чтобы сделать там даже самый маленький патчик на незначительную фичу, нужную лично мне.
2) В проекте 2 я могу просто пойти и сделать, решив свою проблему. Здесь и сейчас, за 5 минут.
Вопрос: что же я выберу? Неделями пыхтеть над крутыми абстракциями? Или пойти и сделать? Ну вы поняли. И вон тем, так то, тоже надо - решение задач, а не высокие концепции.
>1) В проекте 1 мне надо вгрузить в мою голову половину мозга кодера, чтобы сделать там даже самый маленький патчик на незначительную фичу, нужную лично мне.Жёстко. Надеюсь, никого из сишников это не оскорбит.
Вот вот. Писать без абстракций - это жонглировать регистрами и указателями на ассемблере.Он без абстракций даже hello world не напишет, просто потому что ему придется отказаться от ядра, операционки, всех библиотек и концепций вроде переменных, констант и прочего.
Эти противники абстракций такие классные, так уверенно рассказывают что они не нужны, хотя без них давно уже ничего не способны сделать.
> Эти противники абстракций такие классные, так уверенно рассказывают что они не
> нужны, хотя без них давно уже ничего не способны сделать.В абстракциях главное - уметь вовремя остановиться. Иначе бесконечность сожрет мозг, и ушедший в матрицу - будет навсегда потерян для всех остальных, соревнуясь с секундной стрелкой - и генеря "нечто", которое никому кроме него даром не упало.
> Жёстко. Надеюсь, никого из сишников это не оскорбит.Большая часть сишников как раз просты и прямолинейны как рельса, сложные абстракции надо сначала сгородить, так что они где-то в хвосте этого шит-парада.
Конечно и там можно найти что-нибудь этакое. Скажем GObject или что-то такое. Ну так GTK программы и дохнут только в путь, часто переписываясь на куть. Ибо если что-то такое хотелось, лучше уж сразу плюсы взять.
А вот плюсовики - таки могут конкретно разогнаться. Но это не сишка. И вот там можно уже откушать крутых и нестандартных абстракций. И те из програмеров кто не смог вовремя остановиться - познают все факапы хаскелистов и прочих эзотериков. Но обычно плюсеры все же более сбалансированы и понимат когда пора остановиться.
> Здесь кичатся матаномА кто кичится?
> например, на IoT-EVM, вообще-то, не такая уж и легковесная штуковина. Кто и зачем стал бы вкорячивать её в контроллер со слабым процессором и ограниченным объёмом памяти - не могу себе представить.
>execКлассика бэкдоров для кода на "безопасных" ЯП. Не нравятся бэкдоры? Иди сам свою собственную программу разрабатывай, со всеми зависимостями.
Эрланг не позиционировался как "безопасный", то есть исключающий возможность писать с ошибками. Эрланг позиционировался как дающий возможность писать "неубиваемые" программы, способные тащить стопицот одновременных соединений. А накосячить в нём - легко, есть даже книжечка с обзором и разбором наиболее распространённых ошибок - "Erlang in anger".
> Классика бэкдоров для кода на "безопасных" ЯП.Ты не разобрался. Это не типичный exec("some_prog $user_dirty_variable")
> Уязвимость вызвана ошибкой в коде разбора сообщений, из-за которой сообщения SSH_MSG_CHANNEL_REQUEST,
> допускающие выполнение команды "exec", обрабатывались на стадии до прохождения аутентификации.Нормальная такая ошибка.
p.s. а CVE то они как получили? :)
Ну это же ssh, иначе как он без экзека
Через библиотеку… А нет, сорян, это ж опенсорс, тут хорошо делать почти никто не умеет, страдайте с exec тогда и скажите спасибо Тео.
> это ж опенсорс, тут хорошо делать почти никто не умеетАхаха, теоретик. Лютое говно под NDA пишут намного чаще.
Во-первых, есть оправдание - "как заплатили, так и написал. Платите как сеньеру, тогда я постараюсь .."
Во-вторых ни один будущий работодатель этот код не увидит (NDA), а значит и не поймет какое кандидат говно порой пишет.
И в-третьих, там ревью всегда такое себе. У девелоперов свои таски есть чтоб в чужие вникать... Там скорее не ревью, а "тесты прошли, пойдет, хреначим дальше, дедлайн близко!"
А в опенсорсе больше причесывают и вылизывают, потому, что будущий работодатель может оценить тебя по этому коду, даже через 10 лет. Этот код будет как портфолио. И ревью там местами куда качественнее, потому что меинтейнерам легче отклонить что-то не то, чем потом доделывать за свое время. И похрен всем на твои дедлайны
> Ну это же ssh, иначе как он без экзекаДа я не про то, MITRE же - шатдаунили недавно? Для оптимизации DOGE-коина.
> Примечательно, что по словам исследователя код был создан с использованием AI-ассистентов GPT-4, Cursor и Sonnet на основе анализа изменения с исправлением уязвимостиА хваленый Codepilot не смог найти? Он же вроде подсказывать должен в пулл реквестах.
Эти AI, такие AI... Пока его не пнёшь в нужном направлении, он может слона не заметить.
> А хваленый Codepilot не смог найти?Составлять правильные prompts это наука. Уже сейчас этому начали обучать в том же Гарварде (пока что в факультативном режиме). А что будет через пару лет...
>> А хваленый Codepilot не смог найти?
> А что будет через
> пару лет...Кризис будет экономический через 3 года примерно, вот что будет.
Обоснуй, на каком основании.
> Обоснуй, на каком основании.Если коротко, то анализ рыночных котировок.
Автор я опять делаю работу за тебя.Версия 25 вышла 2 years and 11 months ago (17 May 2022).
Итого этот бэкдор не больше трех лет проработал.
Всё таки тысячи глаз видят что-то…