رفتن به محتوا
ittechwire

اخبار فناوری با منابع روشن

  1. خانه
  2. امنیت

امنیت

اصلاحیه‌های OpenBSD 7.9 باگ‌هایی در کرنل را می‌بندند که Calif آن‌ها را در یک اکسپلویت محلی root به هم زنجیر کرد

شرکت امنیتی Calif می‌گوید یک نقص حافظه مشترک که قدمت آن به حدود 37 سال پیش و کد اصلی BSD بازمی‌گردد، نیمی از یک زنجیره محلی برای دستیابی به دسترسی root بوده است. Calif می‌گوید OpenBSD اصلاحات را در قالب errata شماره 018 و 026 منتشر کرده است.

تحریریهٔ ittechwire4 دقیقه مطالعهمنابع: 2ترجمه با هوش مصنوعی · زبان اصلی: English
نمایشگری که ورود با حساب root را در کنسول متنی OpenBSD 5.3، نسخه‌ای قدیمی‌تر از این سیستم‌عامل، در کنار یک صفحه‌نمایش دوم نشان می‌دهد.
NAVY Stealth Reverser · CC0

نکات کلیدی

  1. 1Calif پژوهشی درباره یک اکسپلویت محلی root برای OpenBSD منتشر کرده که دو باگ کرنل را ترکیب می‌کند؛ اصلاحات در errata نسخه OpenBSD 7.9 آمده است.
  2. 2به گفته Calif، یکی از نقص‌ها به یک شمارنده علامت‌دار 16-bit برای اتصال به حافظه مشترک مربوط است که قدمت آن به حدود 37 سال پیش و منابع اصلی BSD بازمی‌گردد.
  3. 3errata شماره 018 سیستم‌عامل OpenBSD به تاریخ 14 سپتامبر 2026 به‌عنوان اصلاحیه پایداری برای سرریز عدد صحیح در shmat برچسب خورده است.
  4. 4errata شماره 026 به تاریخ 30 سپتامبر 2026 به‌عنوان اصلاحیه امنیتی برای باگ شمارش ارجاع در کرنل برچسب خورده که می‌توانست باعث use-after-free شود.
  5. 5این اکسپلویت به دسترسی محلی نیاز دارد؛ Calif همچنین مقاوم‌سازی گسترده‌تر کرنل، از جمله جداسازی امن مدخل‌های فهرست، تصادفی‌سازی تخصیص‌دهنده و راهکارهای مبتنی بر کامپایلر را پیشنهاد داده است.

متن کامل خبر

شرکت امنیتی Calif پژوهشی منتشر کرده که شرح می‌دهد چگونه با ترکیب دو نقص در کرنل، که این پروژه از آن زمان آن‌ها را وصله کرده، به دسترسی root در OpenBSD دست یافته است. این شرکت در گزارشی به قلم Andrew Griffiths به تاریخ 16 اکتبر گفت ریشه یکی از این باگ‌ها را می‌توان تقریباً 37 سال به عقب، تا منابع اصلی BSD، ردیابی کرد. Calif گفت این آسیب‌پذیری‌ها را پیش‌تر در سال جاری به OpenBSD گزارش کرده و اغلب وصله‌های پیشنهادی را نیز همراه آن‌ها ارائه داده است.

به گفته Calif، نقص قدیمی‌تر به شمارنده‌ای مربوط است که اتصال‌ها به حافظه مشترک را ردیابی می‌کند و به‌صورت یک مقدار علامت‌دار 16-bit تعریف شده بود که ممکن است سرریز شود. این شرکت گفت این سرریز می‌توانست از طریق یک شرایط رقابتی (race condition) به یک use-after-free منجر شود و همراه با یک نوشتن خارج از محدوده جداگانه در کرنل، به یک کاربر محلی اجازه داد دسترسی خود را تا root ارتقا دهد. Calif گفت این حمله در حالی کار کرد که پیوند مجدد کرنل KARL در OpenBSD و محافظت‌های پردازنده SMAP و SMEP فعال بودند، و به باگ افشای اطلاعات نیازی نداشت. این گزارش همچنین به کد و یک اثبات مفهوم (proof of concept) پیوند می‌دهد.

Calif گفت این مشکلات در errata شماره 018 و 026 سیستم‌عامل OpenBSD برطرف شده‌اند. در صفحه errata نسخه OpenBSD 7.9، تاریخ 018 روز 14 سپتامبر 2026 است و به‌عنوان یک اصلاحیه پایداری (reliability) فهرست شده که از سرریز عدد صحیح در shmat جلوگیری می‌کند. errata شماره 026 به تاریخ 30 سپتامبر 2026 به‌عنوان یک اصلاحیه امنیتی برای باگی در شمارش ارجاع فهرست شده که می‌توانست به وضعیت use-after-free در کرنل منجر شود. هر دو مورد برای همه معماری‌ها اعمال می‌شوند. Calif هر دو errata را به‌عنوان اصلاحات مشکلات زنجیره خود نام می‌برد، بنابراین یکی از این دو اصلاحیه به‌جای برچسب امنیتی، برچسب پایداری دارد.

صفحه errata بیان می‌کند که وصله‌ها به‌صورت فایل‌های diff یکپارچه (unified diff) امضاشده توزیع می‌شوند و ابزار syspatch می‌تواند به‌روزرسانی‌های باینری را روی amd64، i386 و arm64 نصب کند. اصلاحات مربوط به نسخه‌های پشتیبانی‌شده همچنین در شاخه -stable ادغام می‌شوند که پروژه آن را تا یک سال پس از هر انتشار نگهداری می‌کند. Calif این اکسپلویت را یک ارتقای سطح دسترسی محلی توصیف می‌کند، به این معنا که مهاجم ابتدا باید به سیستم دسترسی داشته باشد.

Calif فراتر از errata، چند ایده برای مقاوم‌سازی مطرح کرد که هدفشان دشوارتر کردن مسیرهای حمله مشابه است. از جمله بررسی‌های یکپارچگی پیش از حذف مدخل‌ها از فهرست‌های پیوندی دوطرفه، که به گفته این شرکت FreeBSD و NetBSD از قبل آن را پیاده‌سازی کرده‌اند، و تصادفی‌سازی بیشتر حافظه کرنل؛ چرا که به گفته Calif، تخصیص‌دهنده‌های حافظه کرنل OpenBSD همچنان قطعی (deterministic) هستند، هرچند KARL چیدمان فایل باینری کرنل را تصادفی می‌کند. این شرکت همچنین به قابلیت‌های کامپایلر مانند array bounds sanitizer و قابلیت آتی Alloc Tokens اشاره کرد. Calif گفت این sanitizer را به FreeBSD پیشنهاد داده و 21 مشکل را که این ابزار می‌توانست شناسایی کند، به‌طور خصوصی در آنجا گزارش کرده است، و استدلال کرد که با کمک هوش مصنوعی به کشف آسیب‌پذیری‌ها، مهار کل دسته‌های باگ اهمیت بیشتری پیدا می‌کند.

چرا مهم است

مدیرانی که فقط errataهای دارای برچسب امنیتی را اعمال می‌کنند، ممکن است 018 را نادیده گرفته باشند؛ موردی که OpenBSD آن را اصلاحیه پایداری فهرست کرده، اما Calif آن را یکی از دو اصلاحیه باگ‌های زنجیره اکسپلویت root خود می‌نامد. با توجه به اینکه کد اکسپلویت به‌طور عمومی ارجاع داده شده، توصیه می‌شود از نصب هر دو مورد 018 و 026 اطمینان حاصل شود، به‌ویژه روی سیستم‌هایی که کاربران غیرقابل‌اعتماد می‌توانند به‌صورت محلی وارد آن‌ها شوند.

گاه‌شمار

  1. · منتشرشده

موضوع‌ها#OpenBSD#کرنل#ارتقای سطح دسترسی#مدیریت وصله#Calif

منابع

این خبر بر منابع زیر استوار است. برای بافت کامل، آن‌ها را بخوانید.

  1. 1Calif · پژوهشBig Fish: Exploiting a 37-Year-Old Kernel Bug in OpenBSDcalif.io
  2. 2OpenBSD · بیانیهٔ رسمیOpenBSD 7.9 Erratawww.openbsd.org