خانه » CVE-2025-1103

CVE-2025-1103

آسیب پذیری Null Pointer Dereference در DSL-823X روتر D-Link

توسط Vulnerbyte Alerts

چکیده

CVE-2025-1103، یک آسیب پذیری با شدت متوسط در D-Link DIR-823X مدل های 240126/240802 است. این آسیب پذیری بر روی عملکرد تابع set_wifi_blacklists از فایل /goform/set_wifi_blacklists کامپوننت HTTP POST Request Handler تاثیر می گذارد. دستکاری این کامپوننت می تواند منجر به حمله Null Pointer Dereference شود. حمله می تواند از راه دور راه اندازی شود. برای جلوگیری از این آسیب پذیری توصیه می شود روشrestrictive firewalling را به کار ببندید.

توضیحات

آسیب پذیری موجود در DIR-823X D-Link در تابع set_wifi_blacklist این روتر وجود دارد. این آسیب پذیری با ارسال یک درخواست POST دستکاری شده ( برای مثال ، حاوی macList=”jX%n ( فعال می شود که زمانی که سرور مشغول پارس کردن این پارامترهای مخرب است، منجر به ناهنجاری هایی در دسترسی به حافظه می شود. به ویژه، در زمان پردازش این کدها، کد تلاش می کند که به یک آدرس حافظه نامعتبر ارجاع دهد و باعث از کار افتادن برنامه شود. این آسیب پذیری به ارسال پارامتر macList و اجرای تابع strlen مربوط است. داده ورودی به میزان کافی اعتبارسنجی و پردازش نمی شود که همین امر زمینه را برای مهاجم فراهم می کند تا از این آسیب پذیری بهره ببرد.

تاثیر آسیب پذیری

پس از ورود موفقیت آمیز به زیرساخت Backend و به دست آوردن توکن و sessionid معتبر، مهاجمان می توانند از آسیب پذیری برای راه اندازی توقف برنامه سرور GoAhead Web سو استفاده کرده و منجر به ایجاد شرابط اجتناب از سرویس (DoS) یا مخاطرات امنیتی بسیار شدیدتر شوند.

جزئیات آسیب پذیری

مکان این آسیب پذیری در فراخوانی strlen در تابع FUN_00407824 در آدرس حافظه 0x407f54 است. این یک آسیب پذیری post-authentication است که می تواند پس ورود به backend و به دست آوردن توکن و sessionid راه اندازی شود.

URL در واقع set_wifi_blacklist با مقدار jX%n در پارامتر macList است. استفاده از POC باعث راه اندازی آسیب پذیری و ایجاد یک segmentation fault در برنامه goahead خواهد شد.

آنالیز آسیب پذیری

تابع set_wifi_blacklists تابع 0x41c108 را فراخوانی می کند.

بر اساس تعریف تابع URL ، هندلر تابع set_wifi_blacklists تابع 0x41c108 است.

تابع 41c108 مقدار پارامتر macList را دریافت می کند.

این تابع ، تابع websGetVar را برای به دست آوردن مقدار پارامتر macList فراخوانی کرده و آن را در متغیر pcVar2 ذخیره می کند.

تابع 41c108 شروع به پردازش می کند

تابع 41c108 شروع به اجرای مجموعه ای از عملیات ها کرده و سپس در خط 43 وارد تابع FUN_00419d78 می شود.

در تابع 419d78 ، در خط 75 وارد تابع 412f30 می شود.

در تابع 412f30، در خط 41 وارد تابع 40b808 می شود.

در تابع 40b808 در خط 28 وارد تابع 4081e8 می شود.

سپس در خط 6 وارد تابع 407824 می شود.

آنالیز خاص بر روی تابع 407824

در مکان 4078a8، x19 مقدار param_3 را ذخیره می کند.

نتیجه gbd به صورت زیر نشان داده می شود.

از آنجایی که مقدار هگزادسیمال % برابر 0x25 است ، شرایط خروج از حلقه فراهم می شود.

در 40793c ، مقدار w0 برابر n (0x6e) است وuVar4 = 0x6e (n). شرایط goto دیده نمی شود، بنابراین uVar15 برابر 0 می شود.

از آنجایی که مقدار uVar4 برابر n است، شرط !=0 را برآورده کرده و وارد حلقه while می شود. در ادامه شرط else (0x407a90) در خط 137 فراهم شده است. همزمان، شرط خروج حلقه while داخلی نیز 0x6e-0x30>9 فراهم می شود.

از آنجایی که uVar4 شرط 0x2e از عبارت شرطی if را برآورده نمی کند، به تابع 407950 میرود.

تابع، uVar4 = 0xffffffff را تنظیم می کند.

از آنجایی که uVar4=0x6e مجموعه ای شروط if را بر آورده نمی کند، آخرین else خط 283 تابع 407c20 اجرا می شود.

همچنین، مجموعه ای از شروط if رد شده و درنهایت یک عبارت شرطی else دیگر در خط 416 اجرا می شود

از آنجایی که شرط به وسیله uVar4=0x6eبرآورده می شود، از goto استفاده نکرده و کد بعدی را اجرا می کنیم.

در کد کامپایل شده در خط 93، uVar15=0 شده و عبارت دو شرطی زیر فراهم می شود :

در این حالت، در 407f5c (خط 443) ، مقدار ivar1 در دیباگ gbd برابر0xffffffd0 است و مقدار puVar16 بعد از iVar7+iVar17 پس از تبدیل به ulong برابر 0 خواهد بود.

در نهایت، در خطوط 456 از کد (407f4c) *(int *)*puVar16 = local_8 به شرایط راه اندازی آسیب پذیری می رسیم. از آنجایی که puVar16 برابر 0 است، پس از ارجاع اشاره گر یک segmentation fault رخ خواهد داد، و حافظه اشتباه خوانده می شود. مقدار حافظه x0 خوانده شده و x0 در این زمان 0 است.

سیستم امتیاز دهی آسیب پذیری ها بر اساس استاندارد های تحقیقاتی حوزه نمره دهی به آسیب پذیری ها، امتیازات زیر را برای شدت اثرگذاری این آسیب پذیری در نظر گرفته است.

CVSS

Score Severity Version Vector String
7.1 HIGH 4.0 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
6.5  
MEDIUM
3.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
6.5 MEDIUM 3.0 CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
6.8 2.0 AV:N/AC:L/Au:S/C:N/I:N/A:C

لیست محصولات آسیب پذیر

در زمان انتشار این اعلامیه، این آسیب پذیری برروی نسخه های زیر تاثیر می گذارد:

  • D-Link DIR-823X 240126, 240802

لیست محصولات بروز شده

برند D-Link هنوز پچ یا بروزرسانی جهت رفع این آسیب پذیری ارائه نداده است. ممکن است توصیه شود به منظور جلوگیری از قرار گرفتن در معرض این آسیب پذیری محصول آسیب پذیری را با محصول دیگری جایگزین کنید.

همچنین می توانید از روش restrictive firewalling جهت کاهش احتمال بروز این حمله استفاده کنید.

نتیجه گیری

آسیب پذیری فوق در دسته آسیب پذیری های سطح متوسط دسته بندی می شود. بهتر است محصول آسیب پذیری را با محصولی که بروزرسانی های نرم افزاری دریافت می کند جایگزین شود.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-1103
  2. https://www.cvedetails.com/cve/CVE-2025-1103/
  3. https://tasty-foxtrot-3a8.notion.site/D-link-DIR-823X-set_wifi_blacklists-Vulnerability-1870448e619580e5bf09cf628692f7a9#1870448e619581e58c31fa8afd926e00
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-1103&sortby=bydate
  5. https://vuldb.com/?id.294933
  6. https://cwe.mitre.org/data/definitions/476.html
  7. https://cwe.mitre.org/data/definitions/404.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید