آسیب‌پذیری اجرای کد از راه دور در هسته لینوکس

آسیب‌پذیری اجرای کد از راه دور در هسته لینوکس

تاریخ ایجاد

آسیب‌پذیری race condition (شرایط مسابقه) با شناسه CVE-2023-6200 و شدت بالا (7.5) در هسته لینوکس (Linux Kernel) شناسایی شده است که امکان اجرای کد دلخواه را با ارسال بسته تبلیغاتی روتر ICMPv6 برای مهاجم احراز هویت نشده فراهم می‌کند. برای بهره‌برداری از این آسیب‌پذیری مهاجم باید در شبکه محلی باشد، IPV6، پارامتر net.ipv6.conf و [NIC].accept_ra نیز فعال باشند.
زمانی که کرنل، بسته تبلیغاتی روتر ICMPv6 را دریافت می‌کند، تابع ()ndisc_router_discovery  فراخوانی می‌شود. اگر بسته حاوی اطلاعات مسیر با lifetime باشد، از تابع ()fib6_set_expires استفاده می‌شود و به gc_link پیوند می‌یابد. ()fib6_clean_expires برای unlink  زمانی استفاده می‌شود که gc_link در ساختار fib6_info در ndisc_router_discovery منقضی شود. سپس ساختار آزاد شده fib6_info در gc_link  باقی می‌ماند. زمانی که ساختارهای دیگر fib6_info  تلاش می‌کنند به همان gc_link ، پیوند یا لغو پیوند شوند یا آن را پیمایش کنند، می‌تواند منجر به  Use-After-Free (UAF) شود.

محصولات تحت تأثیر
این آسیب‌پذیری هسته لینوکس (Linux Kernel) را تحت تاثیر قرار می‌دهد.

توصیه‌های امنیتی
این حمله تنها از راه دور و در شبکه محلی امکان‌پذیر است. در صورتی که net.ipv6.conf.[NIC].accept_ra غیر فعال باشد امکان‌پذیر نیست. جهت بررسی فعال یا غیرفعال بودن این پارامتر از دستور زیر استفاده می‌شود:
•    cat /proc/sys/net/ipv6/conf/default/accept_ra
یا دستور
•    /proc/sys/net/ipv6/conf/eth0/accept_ra  (eth0 نام رابط شبکه است)
در صورتی که دستور بالا یا دستورات مشابه اجرا نشد و پارامتر accept_ra در دسترس نبود، IPV6  غیرفعال است.
 اگر از IPV6 استفاده نمی‌شود، می‌توان آن را به طور کامل غیرفعال کرد. جهت غیرفعال کردن این گزینه می‌توانید به لینک https://access.redhat.com/solutions/8709 مراجعه کنید.

منابع خبر:


[1] https://bugzilla.redhat.com/show_bug.cgi?id=2250377
[2] https://access.redhat.com/security/cve/CVE-2023-6200