توسعهدهندگان پروژه openSUSE یک آسیبپذیری (CVE-2025-23013) را در ماژول pam-u2f PAM شناسایی کردهاند که برای احراز هویت از طریق YubiKey، Yubico Security Key، YubiHSM و سایر دستگاههای FIDO که از توکن U2F (Universal 2nd Factor) استفاده میشود، استفاده میشود. . این آسیبپذیری به کاربر با دسترسی محلی غیرمجاز به سیستم اجازه میدهد تا در پیکربندیهای PAM خاصی بدون درج توکن سختافزاری احراز هویت کند. در عمل، ماژول pam-u2f معمولاً برای احراز هویت دو مرحلهای یا بدون رمز عبور با استفاده از نشانهها وصل میشود (مثلاً برای تأیید مجوز اجرای دستورات از طریق ابزارهای su و sudo).
این آسیبپذیری ناشی از تابع pam_sm_authenticate است که مقدار PAM_IGNORE را به اشتباه برمیگرداند. اگر فراخوانیهای gethostname()، pam_modutil_drop_priv()، pam_modutil_regain_priv()، یا solve_authfile_path() ناموفق باشند، یا اگر strdup() یا calloc() مشکلات تخصیص حافظه داشته باشند، این مقدار برگردانده میشود. مشکل این است که کتابخانه libpam، پس از دریافت نتیجه از یک ماژول PAM با کد PAM_IGNORE، در صورتی که برخی از ماژولهای PAM دیگر در زنجیره چکها نتیجه احراز هویت موفقیتآمیز را برگرداند، کد نهایی PAM_SUCCESS را برمیگرداند که نشاندهنده احراز هویت موفقیتآمیز است.
هنگام استفاده از ماژول pam-u2f همراه با pam_unix برای احراز هویت دو مرحلهای، این آسیبپذیری امکان احراز هویت موفقیتآمیز را در صورت تأیید موفقیتآمیز رمز عبور بدون تأیید عامل دوم فراهم میکند. هنگام انجام احراز هویت بدون رمز عبور با استفاده از یک رمز سخت افزاری، pam-u2f را می توان همراه با ماژول PAM pam_faillock استفاده کرد که تعداد تلاش های احراز هویت را محدود می کند و در صورت اتمام محدودیت، PAM_SUCCESS را برمی گرداند.
یک مثال از حمله، دور زدن تایید رمز است، زمانی که یک کاربر محلی دستورات ممتاز را با استفاده از ابزارهای sudo و su اجرا میکند. هنگام اجرای این دستورات، مهاجم می تواند شرایطی را برای ماژول pam-u2f ایجاد کند تا مقدار PAM_IGNORE را برگرداند، به عنوان مثال، با تمام شدن حافظه موجود. مشکل در pam-u2f نسخه 1.3.1 رفع شده است.
منبع: opennet.ru
