The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимость в strongSwan IPsec, приводящая к удалённому выполнению кода

23.11.2023 13:09

В 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, также подготовлены патчи.

Ошибка вызвана отсутствием проверки размера публичных значений Diffie-Hellman перед их копированием в буфер фиксированного размера в стеке. Переполнение может быть инициировано через отправку специального оформленного сообщения IKE_SA_INIT, обрабатываемого без аутентификации. В старых версиях strongSwan проверка размера осуществлялась в обработчике KE payload (Key Exchange), но в версии 5.3.0 были добавлены изменения, переносящие проверку публичных значений на сторону обработчика протокола DH (Diffie-Hellman) и добавляющие типовые функции для упрощения проверки корректности известных групп DH. По недосмотру, новые функции проверки забыли добавить в процесс charon-tkm, работающий как прокси между процессом IKE и TKM (Trusted Key Manager), в результате чего в функции memcpy() оказались непроверенные значения, позволяющие записать в 512-байтовый буфер до 10000 байтов данных.

  1. Главная ссылка к новости (https://www.strongswan.org//bl...)
  2. OpenNews: Уязвимость в strongSwan IPsec, допускающая удалённое выполнение кода
  3. OpenNews: Выпуск strongSwan 5.4.0, открытой реализации IPsec
  4. OpenNews: В IPSec пакете strongSwan обнаружена серьёзная уязвимость
  5. OpenNews: ФБР заподозрили в помещении бэкдора в IPSEC-стек OpenBSD
  6. OpenNews: В ядре Linux выявлены эксплуатируемые уязвимости в nf_tables, watch_queue и IPsec
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60168-ipsec
Ключевые слова: ipsec, strongswan
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Tron is Whistling (?), 14:12, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Какая-то жёсткая смузёвая поделка из Ада этот ваш TKM.
    К счастью, нигде не используется.
     
     
  • 2.34, Аноним (34), 18:32, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > нигде не используется

    Ну в весёлой убунточке он может прилететь как чья-то зависимость и начать слушать сеть. Очень удивился, когда это обнаружил.

    Проверьте, кто у вас живёт:

    $ ss -ltup

     

  • 1.4, Аноним (4), 14:13, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Был когда-то Ъ: FreeSwan с правельной криптухой и без уязвимостей.
     
  • 1.5, bOOster (ok), 14:15, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    OpenIKED в помощь.
     
     
  • 2.9, пох. (?), 14:52, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    от тех ребят которые кастрированный smtp не шмагли без rce? Спасибо, унесите обратно.

     
     
  • 3.49, bOOster (ok), 08:53, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > от тех ребят которые кастрированный smtp не шмагли без rce? Спасибо, унесите
    > обратно.

    То есть ты на полном серьезе считаешь rce чем то критически необходимым в эксплуатации сервера? Но мозгов у тебя не хватило вспомнить OpenSSH?
    (c) Лавров - Де..лы .ля

     

  • 1.8, Кодировщик программки (?), 14:40, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Да что ты будешь делать, опять невнимательно напрограммировали!
     
  • 1.10, Аноним (10), 14:56, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > отсутствие проверки размера перед копированием в буфер

    Classical C

     
     
  • 2.16, Аноним (16), 16:09, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    C запрещает проверки делать?
     
     
  • 3.19, Аноним (10), 17:00, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не, си позволяет молча писать мимо буфера.
    А кто будет делать необязательные проверки? Вот RCE по 8 лет и живут.
     
     
  • 4.20, Аноним (20), 17:07, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ассемблер тоже позволяет писать мимо буфера.
     
     
  • 5.21, Анонимусс (?), 17:26, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тот кто решает использовать ассемблер обычно (но это не точно) знает
    1 зачем использовать асм
    2 какие трудности могут случиться (и поэтому пишет 2 jmp, вдруг первый не сработает))

    Да и людей способных программировать на ассемблере существенно меньше, чем писак на С.

     
     
  • 6.26, Анонис (?), 17:45, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Да и людей способных программировать на ассемблере существенно меньше, чем писак на С.

    Их определенно больше, чем писак на расте, к-е ваще понятия не имею что там у них компилятора под капотом происходит. Я хз как сейчас, но когда я учился в ВУЗе у нас асм был обязательным предметом наравне с C и архитектурой процессора.  

     
     
  • 7.29, Анонимусс (?), 18:00, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю ты согласен, что "учить АСМ в вузе" и "мочь написать на нем программу спустя 10 лет" это разные вещи.

    Более того я очень сомневаюсь, что те "мастера С" которые не осиливают str.split(sep="=", maxsplit=1) и пишут свой сплиттер для строк (тк в стандартной либе такого ненудного инструмента нету) справятся с программой на АСМ.

     
     
  • 8.32, Анонис (?), 18:06, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Возможно ты и прав Но когда я последний раз собеседовался на текущую работу, од... текст свёрнут, показать
     
     
  • 9.33, Анонимусс (?), 18:15, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я не знаю на какую должность ты шел и на какое направление Системщина и ембедед... текст свёрнут, показать
     
  • 8.42, 1 (??), 09:04, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это в каком стандарте С есть такая функция Ты С и С не попутал ... текст свёрнут, показать
     
  • 5.28, Аноним (28), 17:56, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И поэтому на ассемблере пишут исключительно что-нибудь глубоко системное и железозависимое (перепроверяя по сто раз).
     
  • 5.40, all_glory_to_the_hypnotoad (ok), 01:14, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В asm нет буферов, так что с ним всё норм
     
     
  • 6.44, Аноним (44), 02:34, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ещё скажите, что там с адресами работать нельзя.
     
  • 6.45, Аноним (45), 10:25, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты уверен, что понимаешь что такое буфер?
     
  • 3.47, Sw00p aka Jerom (?), 18:24, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    так 99% ошибок именно в этих проверках :)
     
  • 2.35, Аноним (35), 18:49, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Classical это про историю, музыку, изобразительное искусство и тд. Тут ты наверно имел ввиду Classic.
     

  • 1.13, anonymous (??), 16:00, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Опять неправильные C-программисты писали, что ж ты будешь делать. Ну, самое главное что не на расте, не то у местных опять истерика случилась бы.
     
     
  • 2.24, Анонимусс (?), 17:40, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Писали бы на rust - мы бы такой новости, скорее всего, не прочитали.
    И на форуме бы не пообщались.
    В общем одни минусы.
     
     
  • 3.48, Аноним (48), 23:48, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее социальная новостная сеть, а не форум. Довольно свободная — некоторую анонимность позволяет.

    И мы бы такую новость могли бы почитать. В раст возможно вставить небезопасный кусок кода. Более того, там также случаются ошибки. Как минимум паника, раскрутка стека и весьма нетривиальные ошибки. Впрочем обработчик ошибок тоже существует, но насколько я понимаю он не обязателен. Я ещё до обработки ошибок не дочитал в книге, так, заглянул.

     
  • 2.36, C00l_ni66a (ok), 19:53, 23/11/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.15, Шарп (ok), 16:03, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Languages
    >C 83.0%

    Ну а что вы хотели? Этот язык неспособен не гадить переполнениями.

     
     
  • 2.18, Аноним (20), 16:39, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Надо просто удалить strongSwan и всё. Нет софта - нет уязвимости, прям как в расте.
     
     
  • 3.22, Анонимусс (?), 17:33, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И андроид удали - там тоже раст.
    И винду свою удали! Хотя... у тебя наверное еще ХР или семерка, там Раста точно нету.

    Ну докучи фаерфокс, последнее ядро линукса...
    В общем удачи тебе)

     
     
  • 4.23, Анонис (?), 17:38, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > И винду свою удали!

    нету

    > Ну докучи фаерфокс, последнее ядро линукса...

    тоже нету

     
     
  • 5.25, Анонимусс (?), 17:41, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И ядра линукса нету?
    А ты наверно из BSDнов?
    Смелый и терпеливый человек)

    (Хотя вдруг ты на макоси)

     
     
  • 6.27, Анонис (?), 17:46, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    [     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

    > Смелый и терпеливый человек)

    всмысле?

     
     
  • 7.31, Анонимусс (?), 18:04, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    По моему опыту (который естественно нельзя экстраполировать на всех) БСД настраивать сложнее чем линукс.
    Там больше проблем с железом (это не бубунта которая ставится почти на любой ноут, а на некоторые идет из коробки)

    Поэтому я считаю таких людей более смелыми и терпиливыми чем я (без сарказма)

     
     
  • 8.38, Аноним (38), 23:40, 23/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это городская легенда, которую повторяют на опеннете как последнее заклинание ... текст свёрнут, показать
     
     
  • 9.50, Лёха (?), 14:39, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я бы добавил, что подоплека легенды ушла в небытие где-то в 5 2 1 Ну, в 5 2 еще... текст свёрнут, показать
     
  • 4.46, Аноним (45), 10:27, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > И андроид удали - там тоже раст.

    Там ещё код си из BSD. :D

     

  • 1.37, Golangdev (?), 22:56, 23/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хех, лебедь оказался не таким сильным %)
     
     
  • 2.39, Аноним (44), 01:10, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он достаточно силён для того, чтобы ломануть вам систему.
     

  • 1.41, Аноним (-), 02:57, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > позволяющие записать в 512-байтовый буфер до 10000 байтов данных.

    Ох как было бы круто, записывать 10k байт в 512... Я как-то пытался интерпретатор лиспа впихнуть в 512 байтов загрузочного сектора дискеты, и если бы я мог 10k байт туда впихнуть, то проблем не было бы вовсе. Ещё бы и repl с вменяемыми возможностями редактирования и историей бы поместился б.

    Но это всё ложь, они не записали 10k байт в 512 буфер, они ими стек весь перезатёрли и хрен знает что ещё за пределами стека.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру