معرفی اکسپلویت
نسخههای آسیبپذیر: تمامی سیستمهایی که بر روی آنها از نسخه 1.5 تا نسخه 1.9 ابزار Apache Commons Text نصب شده در برابر نقص CVE-2022-42889 (text4shell) آسیبپذیر هستند.
نوع آسیبپذیری: اجرای کد از راه دور(RCE)
علت آسیبپذیری: وجود نقص منطقی در کلاس StringSubstitutor
مقدمه
Apache Commons Text یک کتابخانه جاوا است که به عنوان “کتابخانهای متمرکز بر الگوریتمهایی که روی رشتهها کار میکنند” شناخته میشود. آسیبپذیری موجود در این ابزار از نوع اجرای کد از راه دور و دارای شدت حیاتی و امتیاز بسیار بالا (CVSS 9.8 ) میباشد.
جزئیات آسیبپذیری
نسخههای آسیبپذیر این ابزار امکان بهرهمندی مهاجم از فرآیند الحاق متغیر ( variable interpolation process) موجود در Apache Commons Text را فراهم میسازد که میتواند منجر به تعریف پویای ویژگیها شود. گفتنی است که آن دسته از سیستمهایی که نسخه آسیبپذیر Apache Commons Text بر روی آنها نصب است در برابر حملات (RCE) و ارتباط ناخواسته با سرورهای غیرقابل اعتماد در معرض خطر هستند.
قالب استاندارد برای عملیات interpolation به صورت “${prefix:name}” است که prefix جهت یافتن نمونهای از org.apache.commons.text.lookup.StringLookup به منظور انجام عملیات درونیابی استفاده میشود.
این نمونهها شامل interpolatorهایی بود که میتوانست منجر به اجرای کد دلخواه از راه دور شود.
Prefixهایی که ممکن است برای بهرهبرداری مورد سو استفاده قرار گیرند عبارتند از:
- “script“: که برای اجرای اسکریپت با استفاده از JVM script execution engine (javax.script) میباشد.
- “dns“: به منظور resolve رکوردهای dns
- “url“: به منظور بارگذاری مقادیر از url
نمونههایی از نحوه استفاده از سه پارامتر script، dns، url توسط مهاجم:
- ${script:name} ex – ${script:javascript:java.lang.Runtime.getRuntime().exec(‘whoami’)}
- ${url:name} ex – ${url:UTF-8:https://domain.tld}
- ${dns:name} ex – ${dns:address|domain.tld}
راهکار جلوگیری از نفوذ
مشکل موجود در نسخههای 1.5 تا 1.9 در نسخه 1.10 این برنامه برطرف شده است.
تاریخ ارائه نسخه وصله شده: 24-09-2022