Более 40 популярных библиотек подвержены уязвимости десериализации в Java

Более 40 популярных библиотек подвержены уязвимости десериализации в Java

В середине ноября 2015 года специалисты компании FoxGlove Security выявили опасный баг в широко распространенной библиотеке, из состава Apache Commons. Теперь компания SourceClear сообщает, что данная уязвимость затрагивает не одну библиотеку, а более 40.

По данным исследования компании SourceClear, многие библиотеки, в числе которых Apache Directory API, JMS Transport и некоторые версии Webx All-in-one Bundle, подвержены аналогичной обнаруженной в ноябре проблеме.

Ранее, основываясь на исследовании, представленном сотрудниками компании Qualcomm, специалисты FoxGlove Security продемонстрировали, что хакеры с легкостью могут воспользоваться уязвимостью для атак на Java серверы приложений, а также на любые другие продукты, в которых используется коллекция Apache Commons (в том числе Oracle WebLogic, IBM WebSphere, Red Hat’s JBoss, Jenkins и OpenNMS), сообщает xakep.ru.

Проблема заключается в том, как Java исполняет user-defined код во время десериализации объектов. Опираясь на это, исследователи FoxGlove Security сумели создать пейлоуды, с помощью которых получили shell-доступ к машинам, на которых работали уязвимые продукты.

«Это очень неприятная уязвимость, потому что это не брешь в самой Java, но баг, которому подвержены широко распространенные библиотеки, — пишет Иоганесс Ульрих (Johannes Ullrich), технический директор SANS Institute Internet Storm Center. — Провести инвентаризацию этих библиотек, которые используются в различных продуктах, крайне трудно».

Специалистам SourceClear удалось выявить баг в нижеперечисленных библиотеках. Компания советует всем разработчикам внимательно проверить свой код и библиотеки на предмет проблемы с десериализацией.

 

Имя Версия
Apache Directory API All 1.0.0-M31
Apache Directory API All 1.0.0-M32
Apache Jena — Fuseki Server Standalone Jar 2.0.0
Apache Jena — Fuseki Server Standalone Jar 2.3.0
flink-core 0.9.0-hadoop1
flink-core 0.9.0
flink-shaded-include-yarn 0.9.0
flink-shaded-include-yarn 0.9.0-milestone-1
jcaptcha-all 1.0-RC6
jcaptcha-all 1.0-RC5
Mule Core 2.1.0
Mule Core 2.1.2
JMS Transport 3.0.0-M2-20091124
JMS Transport 3.3-M1
Spring XD DIRT 1.0.3.RELEASE
Spring XD DIRT 1.0.4.RELEASE
Webx All-in-one Bundle 3.2.3
Webx All-in-one Bundle 3.0.14
hadoop-mapreduce-client-core 2.6.2
hadoop-mapreduce-client-core 2.6.0
Commons BeanUtils Core 1.8.3
Commons BeanUtils Core 1.8.2
Apache Hadoop Common 2.6.2
Apache Hadoop Common 2.5.2
Commons Collections 20031027
Commons Collections 3.2.1
OpenJPA Utilities Library 2.3.0
OpenJPA Utilities Library 2.2.2
OpenJPA Kernel 2.3.0
OpenJPA Kernel 2.2.2
OpenJPA Persistence 1.2.3
JasperReports 6.2.0
JasperReports 6.0.2
Isis MetaModel 1.0.0
Isis MetaModel 1.1.0
AutoValue 1
AutoValue 1.0-rc4
Core 1.6.2
Core 1.6.1
velocity:velocity-dep 1.5-beta2
Apache Commons Collections 4
HBase — Common 0.98.9-hadoop1
HBase — Common 0.98.7-hadoop1
Apache Directory Shared LDAP 0.9.11
org.springframework:spring 2.5.6.SEC03
org.springframework:spring 2.5.6.SEC02
Apache MyFaces JSF-2.2 Core Impl 1.2.5
Apache MyFaces JSF-2.2 Core Impl 2.2.7
jung-visualization 2.0.1
jung-visualization 2
HBase — Server 0.98.10.1-hadoop2
HBase — Server 0.98.7-hadoop2
org.apache.pig pig 0.15.0
com.google.gwt gwt-dev 2.7.0
larvalabs collections 4.01
org.opensymphony.quartz quartz 1.6.1
Apache Commons BeanUtils 1.9.2
Apache Commons BeanUtils 1.9.1
Apache Crunch Core 0.13.0
JasperReports 3.5.2
JasperReports 3.5.1
ApacheDS MVCC BTree implementation 1.0.0-M7
ApacheDS All 2.0.0-M18
ApacheDS All 2.0.0-M17
ESAPI 2.1.0
ESAPI 2.0.1
OpenJPA Aggregate Jar 2.3.0
OpenJPA Aggregate Jar 2.2.2
quartz 1.6.3
quartz 1.6.0

Проводник Windows падал не из-за Microsoft, виноват оказался деинсталлятор

Инженер Microsoft Рэймонд Чен рассказал любопытную историю отладки загадочных падений Проводника. Сначала всё выглядело так, будто в Windows внезапно появился неприятный баг. Но виновником оказалась вовсе не Microsoft, а сторонний деинсталлятор.

Проблема проявилась как резкий всплеск сбоев Проводника. Инженеры начали изучать дампы и заметили странную деталь: падала 32-битная версия программы, запущенная на 64-битных системах Windows.

Такая версия Проводника всё ещё есть в Windows ради совместимости со старыми приложениями. Обычно современные системы почти не используют этот путь. Но в данном случае сторонний деинсталлятор каким-то образом заставлял систему обращаться именно к этому устаревшему компоненту.

Дальше выяснилось, что деинсталлятор некорректно работал с системными API: использовал неправильное соглашение о вызовах функций и неверно обрабатывал параметры стека. Из-за этого при каждой неудачной операции данные из стека удалялись неправильно.

Поскольку процесс повторялся в цикле, повреждение памяти постепенно накапливалось. В какой-то момент указатель стека уезжал в область активного кода, и Проводник падал.

Со стороны всё выглядело как типичная системная ошибка: софт снова и снова аварийно завершал работу, создавая ощущение, что проблема в самой Windows. На деле операционная система лишь показывала последствия ошибки в стороннем ПО.

Чен напомнил важную вещь: в экосистеме Windows с миллиардами устройств и огромным количеством приложений далеко не каждый сбой компонента Microsoft означает баг в Windows. Сторонние программы тоже могут ломать системные процессы, особенно если неправильно используют низкоуровневые API.

RSS: Новости на портале Anti-Malware.ru