یک نقص امنیتی در Kroxylicious شناسایی شده است که مربوط به نحوه پردازش قوانین در بخش ACL authorizer است. در این سیستم، پارسر فایل قوانین، عبارتهای منظم (Regular Expression) را که با ساختار matching /…/ تعریف شدهاند، با استفاده از قوانین unquoting رشتهها پردازش میکند.
جزئیات فنی آسیبپذیری
این فرآیند باعث میشود تمامی کاراکترهای escape (بکاسلش ) از عبارت حذف شوند. برای مثال، اگر یک قانون برای محدود کردن دسترسی به صورت matching /orders.v1/ تعریف شده باشد، این عبارت در هنگام کامپایل به orders.v1 تبدیل میشود. در نتیجه، این قانون به جای تطبیق دقیق، با نامهای ناخواستهای مانند ordersXv1 نیز مطابقت خواهد داشت.
علاوه بر این، کلاسهای کاراکتری مانند d (برای اعداد) و w (برای حروف و اعداد) معنای خاص خود را از دست میدهند و به عنوان کاراکترهای معمولی پردازش میشوند.
پیامد امنیتی
این نقص باعث میشود قوانین دسترسی (Allow rules) که با استفاده از escape-characterهای Regex نوشته شدهاند، روی منابع بیشتری از آنچه مدیر سیستم قصد داشته اعمال شوند. بسته به پیکربندی ACL، این موضوع میتواند به کلاینتهای احراز هویت شده Kafka اجازه دهد تا به منابعی دسترسی پیدا کنند که نباید اجازه دسترسی به آنها را داشته باشند.