آخرین اخبار
همهٔ اخبار
مدیریت آسیب‌پذیری گزارش بحرانیت ۴/۱۰

آسیب‌پذیری بحرانی در Sudo؛ دور زدن محدودیت‌های زمانی دسترسی

آسیب‌پذیری بحرانی در Sudo؛ دور زدن محدودیت‌های زمانی دسترسی

یک آسیب‌پذیری با شدت بالا در ابزار Sudo کشف شده است که به کاربران محلی و بدون دسترسی (unprivileged) در سیستم‌عامل لینوکس اجازه می‌دهد تا محدودیت‌های زمانی تعریف شده در سیاست‌های sudoers را دور بزنند.

جزئیات فنی و مکانیسم حمله

این نقص امنیتی که با شناسه CVE-2026-96512 ردیابی می‌شود، مربوط به نحوه مدیریت متغیر محیطی TZ توسط Sudo در هنگام ارزیابی محدودیت‌های NOTBEFORE و NOTAFTER است. در سیاست‌های Sudoers، این دو تگ برای محدود کردن بازه زمانی اجرای دستورات با دسترسی بالا (Elevated Privileges) استفاده می‌شوند.

مشکل در تابع parse_gentime() رخ می‌دهد؛ جایی که مقادیر زمانی فاقد پسوند منطقه زمانی (Timezone) صریح هستند. در این حالت، Sudo از تابع mktime() برای تفسیر زمان استفاده می‌کند که این تابع به نوبه خود برای تعیین منطقه زمانی به متغیر TZ در محیط پردازش تکیه دارد.

از آنجایی که Sudo یک برنامه setuid-root است و بخشی از محیط کاربر فراخوان را به ارث می‌برد، یک مهاجم محلی می‌تواند با مقداردهی مخرب به TZ (مثلاً استفاده از آفست‌های شدید POSIX مانند TZ=XXX24)، زمان موثر سیاست را تا حدود ۲۵ ساعت جابه‌جا کند. این اقدام باعث می‌شود یک قانون منقضی شده (NOTAFTER) مجدداً فعال به نظر برسد یا محدودیت‌های زمانی آینده (NOTBEFORE) از پیش معتبر شناخته شوند.

محدودیت‌ها و اثرات

  • عدم دسترسی مستقیم به Root: این آسیب‌پذیری به تنهایی دسترسی Root کامل نمی‌دهد. مهاجم باید از قبل دسترسی به یک قانون Sudo داشته باشد که محدودیت زمانی دارد و سایر شرایط آن قانون را نیز برآورده کند.
  • احراز هویت PAM: این نقص باعث دور زدن احراز هویت PAM نمی‌شود. اگر سیاست Sudo نیازمند رمز عبور یا MFA باشد، کاربر همچنان باید این مراحل را طی کند.

راهکارهای مقابله و اصلاح

توسعه‌دهندگان Sudo در آپدیت جدید، متغیر TZ را پیش از تنظیم منطقه زمانی از محیط کاری Sudo حذف کرده‌اند تا از تاثیرگذاری متغیرهای کاربر بر تابع mktime() جلوگیری شود. نسخه‌های 1.8.20 تا 1.9.17p2 تحت تاثیر این مشکل هستند.

به مدیران سیستم توصیه می‌شود:

  • به سرعت آخرین به‌روزرسانی‌های توزیع لینوکس خود را اعمال کنند.
  • ورودی‌های sudoers که از تگ‌های NOTBEFORE یا NOTAFTER استفاده می‌کنند را شناسایی و بازبینی نمایند.
  • از تکیه مطلق به محدودیت‌های زمانی برای کنترل دسترسی‌های حساس اجتناب کرده و از روش‌های جایگزین مانند اعتبارنامه‌های کوتاه‌مدت (Short-lived credentials) و نظارت متمرکز استفاده کنند.