- شناسه CVE-2024-53990 :CVE
- CWE284 / CWE266 :CWE
- github.com :Advisory
- منتشر شده: 12/02/2024
- به روز شده: 12/02/2024
- امتیاز: 9.2
- نوع حمله: Access Control
- اثر گذاری: Denial of Service, Information Leak
- برند: JAVA
- محصول: AsyncHttpClient
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیب پذیری مربوط به نسخه 3.0.0 و نسخه های پیشین AsyncHttpClient async-http-client پیدا شده است که در دسته بندی آسیب پذیری های بحرانی قرار دارد. این احتمال وجود دارد که حمله از راه دور قابل انجام باشد. اکسپلویتی در این زمینه ارائه نشده است. توصیه می شود که المان آسیب پذیر را ارتقا دهید.
توضیحات
کتابخانه AsyncHttpClient شرایطی را برای برنامه های جاوا فراهم می کند که به سادگی درخواست های HTTP خود را اجرا کرده و پاسخ های HTTP دریافتی را به صورت ناهمگام و مستقل از برنامه پردازش کنند. زمان ایجاد هر گونه در خواست HTTP، تابع CookieStore( یا همان cookie jar ) که به صورت اتوماتیک فعال شده و خود مدیریتی است، به صورت کاملا خاموش کوکی های تعریف شده را با کوکی های دیگری از cookie jar با نام یکسان جایگزین می کند. در سرویس هایی که با چندین کاربر کار می کنند، همین امر باعث می شود که کوکی یک کاربر به جای درخواست های کاربر دیگری استفاده شود.
رفتار مورد انتظار
کوکی ای که به شکل مشخص در RequestBuilder ساخته شده است می بایست بر کوکی که درون cookie jar ذخیره شده است تقدم داشته باشد.
رفتار واقعی
cookieStore = httpClient.getCookieStore();cookieStore.add(“some_url”, new DefaultCookie(“name”, “value1”));BoundRequestBuilder requestBuilder = httpClient.prepareGet(“some_url”);requestBuilder.addCookie(new DefaultCookie(“name”, “value2”));httpClient.executeRequest(requestBuilder.build())
این کد درخواستی را با کوکی “name”:”value1” اجرا می کند که چیزی نیست نتیجه مورد انتظار کاربر زمانی که مشخصا کوکی را بر روی RequestBuilder تنظیم می کند، نیست.
تهدید برای توسعه دهندگان سرویس های Backend که قابلیت های احراز هویتthird party را پیاده سازی کرده و یا از سایر قابلیت ها مانند token refresh استفاده می کنند، مشکل ساز خواهد بود. به محض اینکه یک سرویس third party با تنظیمات یک کوکی پاسخ دهد، CookieStore تقریبا تمامی درخواست های بعدی را یا با رد کردن یا احتمالا با آشکار کردن اطلاعات مختلف کاربران، قطع می کند.
اگر سرویس شما کوکی ها را بر اساس پاسخی که در این حالت ایجاد می شود تنظیم کند، این امکان وجود دارد که سطح بالاتری از اطلاعات آشکار شود.
سیستم امتیاز دهی آسیب پذیری ها بر اساس استاندارد های تحقیقاتی حوزه نمره دهی به آسیب پذیری ها، امتیازات زیر را برای شدت اثرگذاری این آسیب پذیری در نظر گرفته است.
Score | Severity | Version | Vector String |
9.2 | CRITICAL | 3.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
محصولات آسیب پذیر
در زمان انتشار این اعلامیه، محصولات زیر در معرض این آسیب پذیری قرار دارند:
- AsyncHttpClient<3.0.1
نرم افزار اصلاح شده
بروزرسانی نسخه های آسیب پذیر به نسخه 3.0.1 این آسیب پذیری را برطرف خواهد کرد همچنین استفاده از پچ d5a83362f7aed81b93ebca559746ac9be0f95425 نیز باعث از بین رفتن این مشکل خواهد شد. بهترین راهکار حذف این آسیب پذیری طبق پیشنهاد توسعه دهنده ارتقا به آخرین نسخه موجود است.
.
Affected | Solution |
<3.0.1 | Upgrade to 3.0.1 or above |
نتیجه گیری
آسیب پذیری فوق در دسته آسیب پذیری های بحرانی دسته بندی می شود. پیشنهاد می شود به منظور جلوگیری از قرار گرفتن در معرض آسیب های احتمالی، المان در معرض آسیب را به نسخه های بالاتر ارتقا دهید.
منابع
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2024-53990&sortby=bydate
- https://vuldb.com/?id.286664
- https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-mfj5-cf8g-g2fv
- https://www.cve.org/CVERecord?id=CVE-2024-53990
- https://www.cvedetails.com/cve/CVE-2024-53990/
- https://github.com/AsyncHttpClient/async-http-client/commit/d5a83362f7aed81b93ebca559746ac9be0f95425
- https://github.com/AsyncHttpClient/async-http-client/pull/2033
- https://github.com/AsyncHttpClient/async-http-client/issues/1964
- https://cwe.mitre.org/data/definitions/266.html
- https://cwe.mitre.org/data/definitions/284.html