CVE-2020-7961
Liferay Liferay Portal
2021-11-03
Liferay Portal contains a deserialization of untrusted data vulnerability that allows remote attackers to execute code via JSON web services.
Технический анализ и план устранения
Суть уязвимости
Уязвимость (CVE-2020-7961) в Liferay Portal связана с небезопасной десериализацией данных в JSON веб-сервисах. Атакующий может отправить специально сформированный запрос к уязвимому JSON веб-сервису. При обработке этого запроса происходит десериализация вредоносных данных, что позволяет удалённо выполнить произвольный код на сервере с правами пользователя, под которым работает Liferay.
Как исправить
Основной метод устранения — обновление Liferay Portal до версии с исправлением.
- Определите текущую версию Liferay. Проверьте файл
portal.propertiesили версию в интерфейсе администратора (Control Panel → Server Administration → Properties → System Properties, ищитеliferay.version). -
Обновитесь до исправленной версии:
- Liferay Portal 7.2.x: Обновитесь до версии 7.2.1 GA2 или новее.
- Liferay Portal 7.1.x: Обновитесь до версии 7.1.3 GA4 или новее.
- Liferay Portal 7.0.x: Обновитесь до версии 7.0.6 GA7 или новее.
- Liferay Portal 6.2.x: Обновитесь до версии 6.2 GA5 или новее.
Скачайте исправленную версию с официального портала Liferay и выполните обновление согласно официальной документации.
-
Если используете Liferay DXP:
- Обновитесь до Fix Pack 72+ для DXP 7.2.
- Обновитесь до Fix Pack 21+ для DXP 7.1.
- Обновитесь до Fix Pack 96+ для DXP 7.0.
- Для DXP 6.2 обновитесь до Fix Pack 15+.
Временное решение
Если немедленное обновление невозможно, примените следующие меры:
- Ограничьте сетевой доступ. Настройте межсетевой экран (firewall) или группы безопасности (Security Groups) так, чтобы доступ к портам Liferay (по умолчанию 8080, 80, 443) был только с доверенных IP-адресов (например, из внутренней сети или VPN).
- Настройте WAF (Web Application Firewall). Добавьте в WAF правило для блокировки запросов, содержащих в теле известные шаблоны сериализованных Java-объектов (например, строки, начинающиеся с
rO0ABX,ACEDили содержащиеjavax.management). Пример правила для ModSecurity:bash SecRule REQUEST_BODY "@rx (?:rO0ABX|ACED|javax\.management\..*Remote)" \ "id:1000,\ phase:2,\ deny,\ status:403,\ msg:'Potential Java Deserialization Attack'" - Отключите ненужные JSON веб-сервисы (крайняя мера). Это может нарушить работу портала. Если вы уверены, что они не используются, вы можете ограничить доступ к
/api/jsonws/через конфигурацию веб-сервера (например, вweb.xmlили на уровне nginx/Apache), заблокировав соответствующий URL-путь.