یه آسیب پذیری با شناسه CVE-2023-24055 در Keepass گزارش شده که امکان اکسپورت کل دیتابیس بصورت plaintext در اختیار مهاجم قرار میده.
KeePass یه برنامه مدیریت پسورد متن باز و محبوب هستش که پسوردها رو در یه دیتابیس محلی ذخیره میکنه. مدیر پسوردهایی مانند LastPass یا Bitwarden برای ذخیره از سرورهای ابری استفاده میکنن.
برای اینکه این دیتابیس محلی ایمن بشه ، روش یه پسورد اصلی (master password) میزارن تا بازیگران تهدید یا بدافزارها نتونن به سادگی به محتوای دیتابیس دسترسی داشته باشن.
آسیب پذیری جدید به یه بازیگر تهدید که به سیستم قربانی دسترسی داره امکان تغییر در رولهای فایل پیکربندی XML برنامه رو میده. دفعه بعدی که قربانی پسورد اصلی رو برای ورود و رمزگشایی وارد میکنه ، رول مخرب اجرا شده و تمام نام های کاربری و پسورد بصورت plaintext در یک فایل اکسپورت میشن. مهاجم با دسترسی به این فایل میتونه کل نام های کاربری و پسورد رو بدست بیاره.
این فرایند بدون تایید و درخواست رمز عبور و بصورت مخفیانه انجام میشه و کاربر اطلاعی از اون نداره.
کاربران خواستن که تیم توسعه KeePass برای بخش اکسپورت یه قسمت تاییدیه اضافه کنه. یعنی هنگام اکسپورت ، از کاربر تاییدیه بخواد . یا هم کلا ویژگی اکسپورت رو حذف کنن. یا اینکه یه گزینه فعال/غیرفعال برای تنظیمات بخش اکسپورت بزارن که با پسورد اصلی قابل تغییر باشه.
برای این آسیب پذیری یه PoC هم منتشر شده که به بدافزارها ، بخصوص Info-stealerها ، امکان سرقت نام های کاربری و پسورد رو میده.
KeePass زیر بار نمیره!
اگرچه این آسیب پذیری CVE گرفته ، همچنین CERTهای هلند و بلژیک در خصوصش هشداری رو صادر کردن ، اما KeePass اونو بعنوان آسیب پذیری به حساب نمیاره.
دلیلشون هم اینه که ، میگن : اگه یه مهاجمی به سیستم دسترسی داشته باشه ، اونم از نوع نوشتن ، میتونه کارهای مختلفی بکنه. مثلا میتونه فایل اجرایی KeePass رو عوض کنه و بجاش یه بدافزار بزاره. این مشکل از KeePass نیست به ایمنی محیط بر میگرده. بنابراین KeePass نمیتونه بصورت جادویی در یه محیط امن اجرا بشه.
راه حل کم تاثیر:
اگه کمپانی نسخه اصلاح شده رو ارائه نده ، میتونید با ورود بعنوان system admin از ویژگی enforced configuration file استفاده کنید. جزییات نحوه ایجاد این پیکربندی رو میتونید از اینجا بدست بیارید.
فقط قبل از استفاده از این نوع پیکربندی باید مطمئن بشید که هیچکدوم از کاربران عادی ، دسترسی به فایل یا فولدرها در دایرکتوری KeePass رو نداشته باشن.
یه نکته دیگه اینکه این فایل پیکربندی فقط روی همون برنامه KeePass در همون دایرکتوری کار میکنه. یعنی مهاجم اگه یه نسخه دیگه از فایل اجرایی برنامه رو در یه فولدر دیگه اجرا کنه ، این روش رو هم میتونه دور بزنه.