Ошибка вызвана отсутствием проверки размера публичных значений 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 байтов данных.
Источник: http://www.opennet.ru/opennews/art.shtml?num=60168