Критическая уязвимость в PolarSSL

В популярной на мобильных устройствах библиотеке шифрования PolarSSL была обнаружена уязвимость, позволяющая удаленно выполнить произвольный код через специальным образом подготовленный сертификат. Брешь, получившая идентификатор CVE-2015-1182, существует из-за неправильной обработки определенных последовательностей ASN.1, содержащихся в сертификатах X.509. В функции asn1_get_sequence_of(), указатель на связный список asn1_sequence не инициализируется, что может привести к вызову функции polarssl_free() с неинициализированным указателем и, в конечном итоге, к выполнению вредоносного кода.

Уязвимость проявляется в момент анализа сертификата, а значит, вредоносный код может быть выполнен как на стороне клиента, так и на стороне сервера. Уязвимы все актуальные версии PolarSSL. Официального патча, исправляющего уязвимость, все еще нет, однако есть неофициальный.

Библиотека PolarSSL чаще всего используется в мобильных и встраиваемых устройствах. Например, OpenVPN использует именно ее для iOS и Android-клиентов, а также для роутеров под OpenWRT. Кроме этого, используется в OpenVPN, FreeRDP и PowerDNS.