В strongSwan, VPN-пакете на базе протокола IPSec, применяемом в Linux, Android, FreeBSD и macOS, выявлена уязвимость (CVE-2023-41913), которую можно использовать для удалённого выполнения кода злоумышленника. Уязвимость вызвана ошибкой в процессе charon-tkm с реализацией протокола обмена ключами (IKE) на базе TKMv2 (Trusted Key Manager), приводящей к переполнению буфера при обработке специально оформленных значений схемы DH (Diffie–Hellman). Уязвимость проявляется только в системах, использующих charon-tkm и в выпусках strongSwan, начиная с 5.3.0. Проблема устранена в обновлении strongSwan 5.9.12. Для исправления уязвимости в ветках, начиная с 5.3.x, также подготовлены патчи...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60168
Какая-то жёсткая смузёвая поделка из Ада этот ваш TKM.
К счастью, нигде не используется.
> нигде не используетсяНу в весёлой убунточке он может прилететь как чья-то зависимость и начать слушать сеть. Очень удивился, когда это обнаружил.
Проверьте, кто у вас живёт:
$ ss -ltup
Был когда-то Ъ: FreeSwan с правельной криптухой и без уязвимостей.
OpenIKED в помощь.
от тех ребят которые кастрированный smtp не шмагли без rce? Спасибо, унесите обратно.
> от тех ребят которые кастрированный smtp не шмагли без rce? Спасибо, унесите
> обратно.То есть ты на полном серьезе считаешь rce чем то критически необходимым в эксплуатации сервера? Но мозгов у тебя не хватило вспомнить OpenSSH?
(c) Лавров - Де..лы .ля
Да что ты будешь делать, опять невнимательно напрограммировали!
> отсутствие проверки размера перед копированием в буферClassical C
C запрещает проверки делать?
Не, си позволяет молча писать мимо буфера.
А кто будет делать необязательные проверки? Вот RCE по 8 лет и живут.
Ассемблер тоже позволяет писать мимо буфера.
Тот кто решает использовать ассемблер обычно (но это не точно) знает
1 зачем использовать асм
2 какие трудности могут случиться (и поэтому пишет 2 jmp, вдруг первый не сработает))Да и людей способных программировать на ассемблере существенно меньше, чем писак на С.
> Да и людей способных программировать на ассемблере существенно меньше, чем писак на С.Их определенно больше, чем писак на расте, к-е ваще понятия не имею что там у них компилятора под капотом происходит. Я хз как сейчас, но когда я учился в ВУЗе у нас асм был обязательным предметом наравне с C и архитектурой процессора.
Думаю ты согласен, что "учить АСМ в вузе" и "мочь написать на нем программу спустя 10 лет" это разные вещи.Более того я очень сомневаюсь, что те "мастера С" которые не осиливают str.split(sep="=", maxsplit=1) и пишут свой сплиттер для строк (тк в стандартной либе такого ненудного инструмента нету) справятся с программой на АСМ.
Возможно ты и прав. Но когда я последний раз собеседовался на текущую работу, одно из заданий было (после всяких алгоритмов и демонстраций практических знаний на допиливание uBoot, USB, PCI и т.д.) небольшая программа на C, в к-й надо построчно описать как будет выглядеть асм. И имхо тут ничего сложного нет, я справился.З.Ы, я тебе там ниже ответил про BSDуна
Я не знаю на какую должность ты шел и на какое направление.
Системщина и ембедед - да.
Какая-то обработка звука/изображений/видео - тоже скорее да, и то многие ограничатся дерганьем библиотечных функций.А для того чтобы делать нативные приложения для пользователей - думаю это уже лишнее.
Т.е для прикладного софта типа текстовый редактор, почтовый клиент, банковское приложение, игры знание ассемблера достаточно в виде "знать что он существует".Я знаю людей которые 10 лет пилят кроссплатформу под линукс, винду и иось/макось и отлично себя чувствуют)
> Более того я очень сомневаюсь, что те "мастера С" которые не осиливают str.split(sep="=", maxsplit=1) и пишут свой сплиттер для строк (тк в стандартной либе такого ненудного инструмента нету) справятся с программой на АСМ.Это в каком стандарте С есть такая функция ?
Ты С и С++ не попутал ?
И поэтому на ассемблере пишут исключительно что-нибудь глубоко системное и железозависимое (перепроверяя по сто раз).
В asm нет буферов, так что с ним всё норм
Ещё скажите, что там с адресами работать нельзя.
Ты уверен, что понимаешь что такое буфер?
так 99% ошибок именно в этих проверках :)
Classical это про историю, музыку, изобразительное искусство и тд. Тут ты наверно имел ввиду Classic.
Опять неправильные C-программисты писали, что ж ты будешь делать. Ну, самое главное что не на расте, не то у местных опять истерика случилась бы.
Писали бы на rust - мы бы такой новости, скорее всего, не прочитали.
И на форуме бы не пообщались.
В общем одни минусы.
Скорее социальная новостная сеть, а не форум. Довольно свободная — некоторую анонимность позволяет.И мы бы такую новость могли бы почитать. В раст возможно вставить небезопасный кусок кода. Более того, там также случаются ошибки. Как минимум паника, раскрутка стека и весьма нетривиальные ошибки. Впрочем обработчик ошибок тоже существует, но насколько я понимаю он не обязателен. Я ещё до обработки ошибок не дочитал в книге, так, заглянул.
А когда правильные неместные в своём анализаторе RCE поправят, не подскажешь?
>Languages
>C 83.0%Ну а что вы хотели? Этот язык неспособен не гадить переполнениями.
Надо просто удалить strongSwan и всё. Нет софта - нет уязвимости, прям как в расте.
И андроид удали - там тоже раст.
И винду свою удали! Хотя... у тебя наверное еще ХР или семерка, там Раста точно нету.Ну докучи фаерфокс, последнее ядро линукса...
В общем удачи тебе)
> И винду свою удали!нету
> Ну докучи фаерфокс, последнее ядро линукса...
тоже нету
И ядра линукса нету?
А ты наверно из BSDнов?
Смелый и терпеливый человек)(Хотя вдруг ты на макоси)
[ 1.000000] NetBSD 10.99.10 (GENERIC) #0: Wed Nov 22 03:52:58 UTC 2023
[ 1.000000] mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/amd64/compile/GENERIC
...
[ 1.000004] cpu0: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, id 0x810f81
[ 1.000004] cpu0: node 0, package 0, core 0, smt 0
[ 1.000004] cpu0: searching errata for cpu revision 0x00810f81
[ 1.000004] cpu1 at mainbus0 apid 1
[ 1.000004] cpu1: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, id 0x810f81
[ 1.000004] cpu1: node 0, package 0, core 0, smt 1
[ 1.000004] cpu2 at mainbus0 apid 2
[ 1.000004] cpu2: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, id 0x810f81
[ 1.000004] cpu2: node 0, package 0, core 1, smt 0
[ 1.000004] cpu3 at mainbus0 apid 3
[ 1.000004] cpu3: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, id 0x810f81
[ 1.000004] cpu3: node 0, package 0, core 1, smt 1
[ 1.000004] cpu4 at mainbus0 apid 4
[ 1.000004] cpu4: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, id 0x810f81
[ 1.000004] cpu4: node 0, package 0, core 2, smt 0
[ 1.000004] cpu5 at mainbus0 apid 5
[ 1.000004] cpu5: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, id 0x810f81
[ 1.000004] cpu5: node 0, package 0, core 2, smt 1
[ 1.000004] cpu6 at mainbus0 apid 6
[ 1.000004] cpu6: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, id 0x810f81
[ 1.000004] cpu6: node 0, package 0, core 3, smt 0
[ 1.000004] cpu7 at mainbus0 apid 7
[ 1.000004] cpu7: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx, id 0x810f81> Смелый и терпеливый человек)
всмысле?
По моему опыту (который естественно нельзя экстраполировать на всех) БСД настраивать сложнее чем линукс.
Там больше проблем с железом (это не бубунта которая ставится почти на любой ноут, а на некоторые идет из коробки)Поэтому я считаю таких людей более смелыми и терпиливыми чем я (без сарказма)
Это городская легенда, которую повторяют на опеннете как последнее заклинание.
Я бы добавил, что подоплека легенды ушла в небытие где-то в 5.2.1. Ну, в 5.2 еще была, а вот в 5.2.1 резко перестала быть. Лет эдак цать назад.
> И андроид удали - там тоже раст.Там ещё код си из BSD. :D
хех, лебедь оказался не таким сильным %)
Он достаточно силён для того, чтобы ломануть вам систему.
> позволяющие записать в 512-байтовый буфер до 10000 байтов данных.Ох как было бы круто, записывать 10k байт в 512... Я как-то пытался интерпретатор лиспа впихнуть в 512 байтов загрузочного сектора дискеты, и если бы я мог 10k байт туда впихнуть, то проблем не было бы вовсе. Ещё бы и repl с вменяемыми возможностями редактирования и историей бы поместился б.
Но это всё ложь, они не записали 10k байт в 512 буфер, они ими стек весь перезатёрли и хрен знает что ещё за пределами стека.