کشف آسیبپذیری امکان افشای اطلاعات در پلتفرم ابری LAF
به گفته محققان امنیتی، یک آسیبپذیری بحرانی (CVSS=9.6) با شناسه CVE-2023-50253در پلتفرم ابری شرکت labring به نام laf به مهاجم اجازه میدهد تا با اعمال تغییرات در ورودیهای ارسالی از سمت خود باعث ایجاد خطا در سامانه شود. این فرآیند منجر به افشاء اطلاعات کاربران خواهد شد. در حقیقت، این افشاء اطلاعات از طریق دسترسی مهاجم به تمام اطلاعات ذخیره شده در لاگهای سیستم صورت میپذیرد. لاگهای ذخیره شده در پلتفرم laf، حاوی اطلاعاتی از کاربران است که میتواند منجر به از بین رفتن محرمانگی در سامانه گردد، لازم به ذکر است مهاجم قادر به اجرای این حمله از راه دور میباشد. این پلتفرم لاگهای خود را از طریق ارتباط با Kubernetes(K8S) به منظور بهینه کردن فضای ذخیرهسازی (عدم نیاز به فضای ذخیرهسازی مجزا برای لاگها ) دریافت میکند. دلیل به وجود آمدن این آسیبپذیری آن است که در پلتفرم laf، مجوزهای مربوط به pod (مجموعهای از Containerهای لینوکسی که کوچکترین واحد از K8S است) بررسی و ارزیابی نمیگردد. عدم بررسی مجوزها به کاربر احرازهویت شده اجازه میدهد تا لاگهای مربوط به تمام podهای قرار گرفته در یک namespace را به دست آورد، در ادامه به مراحلی که مهاجم (به عنوان یک کاربر احراز هویت شده) جهت بهرهبرداری از این آسیبپذیری باید انجام دهد اشاره شده است:
در این پلتفرم هر کاربر برای احراز هویت باید دو مرحله زیر را طی کند، به عبارت دیگر، کاربر برای معرفی خود به عنوان یک کاربر مجاز، نیاز به توکن JWT و ApplID دارد.
• JwtAuthGuard
• Application AuthGuard
• در ادامه مهاجم باید نام pod مورد نظر خود را که قصد دسترسی به لاگهای آن را دارد پیدا کند. برای این کار باید بتواند Prometheus را شنود کند، اما به دلیل بررسیهای امنیتی، این کار ممکن نمیباشد؛ اما از آنجا که اکثر اجزای Prometheus احراز هویتشده نیستند با استفاده از دستور curl میتوان اطلاعات مرتبط با تمام خوشهها را به دست آورد.
• curl https://prometheus-kube-state-metrics.xxxxxx:8080/metrics
• اکنون مهاجم با اطلاعات به دست آمده از مراحل قبلی، قادر به بهرهبردرای از این آسیبپذیری از طریق ارسال درخواست زیر میباشد:
Curl https://laf.run/v1/apps/xxxx/logs/<container_name>\?containerName\=<container> -H “Authorization: Bearer <YOUR_SELF_TOKEN>”
محصولات تحت تاثیر
کلیه نسخههای زیر از این پلتفرم در معرض آسیبپذیری مذکور قرار دارند:
• 1.0.0-beta.0
• 1.0.0-beta.1
• 1.0.0-beta.2
• 1.0.0-beta.3
• 1.0.0-beta.4
• 1.0.0-beta.5
• 1.0.0-beta.6
• 1.0.0-beta.7
• 1.0.0-beta.8
• 1.0.0-beta.9
• 1.0.0-beta.10
• 1.0.0-beta.11
• 1.0.0-beta.12
• 1.0.0-beta.13
توصیههای امنیتی
هنوز هیچ وصله امنیتی برای این آسیبپذیری توسط تیم پشتیبان پلتفرم laf ارائه نشده است و تا زمان ارائه وصله امنیتی، تنها کار ممکن، اعمال سیاستهای امنیتی بر روی درخواستهای ارسال شده از طریق دستور curl با فرمت فوقالذکر میباشد.