یک آسیبپذیری امنیتی از نوع Out-of-bounds Read (CWE-125) در کتابخانه khaiii متعلق به شرکت Kakao شناسایی شده است. این کتابخانه که یک تحلیلگر صرفی (Morphological analyzer) برای زبان کرهای است، در نسخههای خود تا ورژن 0.4 دچار این نقص فنی میباشد.
جزئیات فنی و نحوه حمله
این آسیبپذیری در تابع khaiii::nn::Linear::open و از طریق بخش مدیریت فایلهای پیکربندی JSON (JSON Config File Handler) رخ میدهد. مهاجم با ارائه یک فایل پیکربندی دستکاری شده که مقادیر غیرمجاز برای پارامترهای hidden_dim یا class_num دارد، میتواند باعث شود برنامه فراتر از محدوده حافظه تخصیصیافته را بخواند.
- نوع حمله: محلی (Local)
- پیشنیاز: دسترسی نوشتن (Write access) به دایرکتوری منابع (–rsc-dir)
- پیامد: نشت اطلاعات حافظه (Memory disclosure) یا توقف ناگهانی (Crash) برنامه
محدودیتها و وضعیت فعلی
نکته بسیار مهم این است که این آسیبپذیری تنها زمانی قابل بهرهبرداری است که مهاجم از قبل توانایی نوشتن در دایرکتوری منابع را داشته باشد؛ یعنی در واقع مهاجم پیش از کشف این باگ نیز میتوانست نتایج تحلیل را تغییر دهد. همچنین، از آنجایی که این محصول از حالت پشتیبانی خارج شده است (End-of-life)، هیچ اصلاحیه یا Patch رسمی برای آن منتشر نخواهد شد.
توصیههای امنیتی و مقابله
برای کاهش ریسک در محیطهای عملیاتی که همچنان از این کتابخانه استفاده میکنند، اقدامات زیر توصیه میشود:
- محدود کردن دسترسی به دایرکتوری منابع (–rsc-dir) تنها برای کاربر Root یا یک حساب کاربری اختصاصی با دسترسی Read-only.
- بررسی محتویات دایرکتوری منابع با استفاده از Checksum معتبر قبل از اجرای برنامه.
- برنامهریزی برای مهاجرت به کتابخانههای جایگزین که همچنان تحت پشتیبانی (Supported) هستند.