آسیب پذیری در پشته IPv6 هسته لینوکس که امکان اجرای کد از راه دور را فراهم می کند

اطلاعاتی در مورد آسیب پذیری CVE-2023-6200) در پشته شبکه هسته لینوکس فاش شده است، که تحت شرایط خاصی به مهاجم یک شبکه محلی اجازه می دهد تا با ارسال یک بسته ICMPv6 طراحی شده ویژه به اجرای کد خود دست یابد. یک پیام RA (تبلیغات روتر) که برای تبلیغ اطلاعات مربوط به روتر است.

این آسیب‌پذیری فقط می‌تواند از شبکه محلی مورد سوء استفاده قرار گیرد و در سیستم‌هایی با پشتیبانی IPv6 فعال و پارامتر sysctl «net.ipv6.conf.<network_interface_name>.accept_ra» فعال ظاهر می‌شود (با دستور «sysctl net.ipv6.conf قابل بررسی است. | grep accept_ra”)، که به طور پیش‌فرض در RHEL و Ubuntu برای رابط‌های شبکه خارجی غیرفعال است، اما برای رابط Loopback فعال است که امکان حمله از همان سیستم را فراهم می‌کند.

این آسیب‌پذیری در شرایط مسابقه‌ای ایجاد می‌شود که جمع‌آورکننده زباله، سوابق قدیمی fib6_info را پردازش می‌کند، که می‌تواند منجر به دسترسی به یک منطقه حافظه آزاد شده (استفاده پس از آزاد شدن) شود. هنگامی که یک بسته ICMPv6 با پیام تبلیغاتی روتر (RA, Router Advertisement) دریافت می شود، پشته شبکه تابع ndisc_router_discovery() را فراخوانی می کند، که اگر پیام RA حاوی اطلاعاتی در مورد طول عمر مسیر باشد، تابع fib6_set_expires() را فراخوانی می کند و تابع را پر می کند. ساختار gc_link. برای پاک کردن ورودی های منسوخ، از تابع fib6_clean_expires() استفاده کنید که ورودی gc_link را جدا می کند و حافظه استفاده شده توسط ساختار fib6_info را پاک می کند. در این حالت، یک لحظه خاص وجود دارد که حافظه ساختار fib6_info قبلاً آزاد شده است، اما پیوند به آن همچنان در ساختار gc_link است.

این آسیب پذیری از شاخه 6.6 ظاهر شد و در نسخه های 6.6.9 و 6.7 رفع شد. وضعیت رفع آسیب پذیری در توزیع ها را می توان در این صفحات ارزیابی کرد: Debian، Ubuntu، SUSE، RHEL، Fedora، Arch Linux، Gentoo، Slackware. از توزیع‌هایی که بسته‌ها را با هسته 6.6 ارسال می‌کنند، می‌توان به Arch Linux، Gentoo، Fedora، Slackware، OpenMandriva و Manjaro اشاره کرد؛ در توزیع‌های دیگر، این امکان وجود دارد که تغییر با خطا به بسته‌هایی با شاخه‌های هسته قدیمی‌تر گزارش شود (برای به عنوان مثال، در دبیان ذکر شده است که بسته با هسته 6.5.13 آسیب پذیر است، در حالی که تغییر مشکل در شاخه 6.6 ظاهر شد. به عنوان یک راه حل امنیتی، می توانید IPv6 را غیرفعال کنید یا پارامترهای "net.ipv0.conf.*.accept_ra" را روی 6 تنظیم کنید.

منبع: opennet.ru

اضافه کردن نظر