در ابزار apko که برای ساخت و انتشار تصاویر کانتینری OCI بر پایه بستههای apk استفاده میشود، یک آسیبپذیری امنیتی شناسایی شده است. این مشکل در نسخههای 0.2.0 تا پیش از نسخه 1.4.5 وجود دارد و مربوط به نحوه پردازش فایلهای شناسایی کاربران و گروهها است.
جزئیات فنی آسیبپذیری
در توابع UserEntry.Parse و GroupEntry.Parse واقع در مسیر pkg/passwd، این ابزار مقادیر UID و GID را از ورودیهای فایلهای /etc/passwd و /etc/group میخواند. برای تبدیل این مقادیر، از تابع strconv.Atoi استفاده شده و سپس بدون انجام هیچگونه بررسی محدوده (Range Check)، مقادیر به نوع uint32 تبدیل میشوند.
تاثیرات امنیتی
در پلتفرمهای 64 بیتی، این نقص منجر به رفتارهای پیشبینی نشده میشود. برای مثال، مقادیری خارج از محدوده مانند 4294967296 (2^32) به مقدار 0 کوتاه (Truncate) شده و مقادیر منفی نیز دچار Wrap میشوند. از آنجایی که apko ورودیهای passwd و group را از بستههای تامین شده میخواند، یک مهاجم میتواند با دستکاری این مقادیر در بستههای apk، باعث ایجاد کاربران یا گروههایی با شناسههای غیرمنتظره (مانند Root) در تصویر نهایی کانتینر شود.
راهکار اصلاح
کاربران و مدیران زیرساختهای Cloud Native توصیه میشود هرچه سریعتر apko را به نسخه 1.4.5 یا نسخههای جدیدتر بهروزرسانی کنند تا این نقص در اعتبارسنجی ورودیها برطرف گردد.