یک آسیبپذیری بحرانی در پلاگین API keys کتابخانهی محبوب better-auth به مهاجمان اجازه میدهد بدون نیاز به احراز هویت، برای هر کاربر کلید دسترسی سطح بالا تولید کنند.
این نقص با شناسهی CVE-2025-61928 شناسایی شده و کتابخانهی better-auth (چارچوب احراز هویت TypeScript با بیش از ۳۰۰ هزار دانلود هفتگی در npm) را تحت تأثیر قرار میدهد.
از آنجا که بسیاری از برنامهها برای دسترسی خودکار (automated access) از API key استفاده میکنند، این آسیبپذیری میتواند منجر به نفوذ گسترده به حسابها شود. better-auth در پروژههای شرکتهای نوپا و حتی سازمانهای بزرگ مانند Equinor مورد استفاده قرار دارد.
معماری افزونهای این کتابخانه فرآیند اضافهکردن قابلیتهایی مانند مدیریت API key را ساده میکند، اما یک باگ ظریف در منطق مجوزدهی (authorization logic) مسیر سوءاستفاده را باز گذاشته است.
این آسیبپذیری توسط شرکت ZeroPath در جریان بررسی وابستگیهای شخص ثالث کشف شد و خطرات پنهان در کتابخانههای احراز هویت را که پایهی بسیاری از اکوسیستمهای نرمافزاری هستند، برجسته کرد.
جزئیات فنی آسیبپذیری
مشکل در تابع createApiKey پلاگین نهفته است. این تابع معمولاً باید زمینهی کاربر را از session فعال استخراج کند تا کنترلهای امنیتی اعمال شوند.
اما زمانی که درخواست فاقد session باشد و پارامتر userId در بدنهی درخواست قرار گیرد، کد مقدار authRequired را به false
تغییر میدهد و بدین ترتیب بررسیهای حیاتی احراز هویت را دور میزند.
در نتیجه، مهاجم میتواند با ارسال درخواست POST
به مسیر/api/auth/api-key/create
و درج شناسهی کاربر هدف (userId
)، نام و حتی فیلدهای دارای امتیاز بالا (مثل rate limit یا سطح دسترسیها)، کلید API واقعی و معتبر برای حساب قربانی دریافت کند.
پاسخ سرور شامل کلید فعال مرتبط با حساب قربانی است و عملاً احراز هویت چندمرحلهای (MFA) را دور میزند و امکان تسخیر خودکار حسابها را فراهم میسازد. همین منطق در endpointهای بهروزرسانی نیز وجود دارد و ریسک را چندبرابر میکند.
از آنجا که API key معمولاً دسترسی طولانیمدت و سطح بالا برای سرویسهای خودکار دارد، این نقص از خطرناکترین نوع آسیبپذیریها محسوب میشود و مهاجمان را قادر میسازد دادههای حساس را بخوانند، عملیات مخرب خودکار انجام دهند یا کاربران را جعل کنند.
تنها استقرارهایی که از پلاگین API keys استفاده میکنند آسیبپذیرند، اما با توجه به محبوبیت گستردهی better-auth، دامنهی خطر بالا است.
توصیههای امنیتی و وصلهها
-
فوراً به نسخهی ۱.۳.۲۶ یا جدیدتر ارتقاء دهید؛ در این نسخه بررسی مجوزها اصلاح شده است.
-
تمام API keyها را بازنشانی (rotate) و کلیدهای بدون استفاده را حذف کنید.
-
لاگها را برای درخواستهای مشکوک بدون احراز هویت در endpointهای ایجاد یا بهروزرسانی بررسی کنید، بهویژه درخواستهایی که شامل userId یا مقادیر سطحبالا هستند.
-
اعمال احراز هویت اجباری در لایهی API Gateway یا reverse proxy برای مسیرهای حساس توصیه میشود.
این نقص در تاریخ ۲ اکتبر ۲۰۲۵ گزارش و بهسرعت وصله شد. اطلاعیهی امنیتی آن با شماره GHSA-99h5-pjcv-gr6v در ۸ اکتبر منتشر و یک روز بعد شناسهی CVE اختصاص داده شد.
یک نظر