به تازگی چندین آسیب پذیری حیاتی در JSON deserialization شناسایی شده است که نسخه های 6.1 ، 6.2 ، 7.0 ، 7.1 و 7.2 برنامه ی Liferay Portal را تحت تاثیر قرار می دهند. این نواقص امکان اجرای کد از راه دور را برای کاربران احراز هویت نشده به وسیله ی JSON web services API فراهم می سازد.
پرتالLiferay یکی از برترین پرتالهای متنباز در ابعاد سازمانی محسوب میشود که به زبان جاوا نوشته شده است.
این نواقص در نسخه های زیر از Liferay Portal وصله شده است:
- 2 GA6
- 0 GA7
- 1 GA4
- 2 GA2
این آسیب پذیری ها عبارتند از :
تابع JSONDeserializer از کتابخانه ی Flexjson امکان ساخت کلاس های دلخواه و فراخوانی متدهای setter دلخواه را فراهم می سازد. در نسخه های Liferay Portal 6.1 & 6.2 ، کتابخانه ی Flexjson برای serializing و deserializing داده ها استفاده می شود. این کتابخانه از object binding که از متدهای setter آبجکت های ساخته شده برای هر کلاس با یک constructor بدون پارامتر استفاده می نمایند، پشتیبانی می کند.
- Unauthenticated Remote code execution via JSONWS (CVE-2020-7961)
تابع JSONWebServiceActionParametersMap نیز در Liferay Portal امکان ساخت کلاس های دلخواه و فراخوانی متودهای setter دلخواه را فراهم می سازد.
در Liferay Portal 7 کتابخانه ی Jodd Json جایگزین کتابخانه ی Flexjson شده است. این کتابخانه جدید از مشخص کردن کلاس برای deserialize کردن داده های json پشتیبانی نمی کند. در عوض تنها می توان نوع ابجکت root را مشخص کرد و می بایست به طور صریح توسط یک نمونه آبجکت java.lang.Class ارائه شود.
اکسپلویت
اسکریپت نفوذ به پرتال های Liferay از طریق این آسیب پذیری منتشر شده است که از لینک زیر در دسترس می باشد.
https://github.com/mzer0one/CVE-2020-7961-POC
بازگوشده از : مرکز ماهر