یک آسیبپذیری امنیتی با شناسه CVE-2026-91776 در کتابخانه محبوب jackson-databind متعلق به FasterXML شناسایی شده است. این نقص امنیتی در متد TypeDeserializerBase._findDeserializer() رخ میدهد و میتواند منجر به حملات منع سرویس (DoS) شود.
تحلیل فنی نقص
در این کتابخانه، زمانی که Polymorphism مبتنی بر نام (Name-based polymorphism) با یک مقدار جایگزین (Fallback) پیکربندی شده باشد (به عنوان مثال با استفاده از @JsonTypeInfo(use = Id.NAME, defaultImpl = ...))، هر شناسه نوع (Type ID) ناشناختهای که توسط مهاجم ارسال شود، به همان Deserializer جایگزین ارجاع داده میشود. با این حال، مشکل اصلی اینجاست که هر یک از این شناسههای متمایز به عنوان یک کل (Key) مجزا در نقشه _deserializers ذخیره میشوند.
مکانیسم حمله
- از آنجایی که برای این Map هیچ محدودیتی (Bound) تعریف نشده است، مهاجم میتواند با ارسال تعداد زیادی از شناسههای نوع (Type ID) تصادفی و متمایز، حافظه سیستم را پر کند.
- این نقشه در طول چرخه حیات Type Deserializer باقی میماند و پاک نمیشود.
- در نهایت، این وضعیت منجر به مصرف بیش از حد حافظه (Memory Exhaustion) و در نهایت کرش کردن اپلیکیشن یا سیستم میشود.
این آسیبپذیری به دلیل نحوه مدیریت حافظه در هنگام پردازش دادههای ورودی غیرمعتبر در محیطهای Cloud Native و میکروسرویسهایی که به شدت به این کتابخانه برای پردازش JSON وابسته هستند، ریسک قابل توجهی ایجاد میکند.