ثغرة أمنية في zlib تحدث عند ضغط البيانات المصممة خصيصًا

تم التعرف على ثغرة أمنية (CVE-2018-25032) في مكتبة zlib، مما يؤدي إلى تجاوز سعة المخزن المؤقت عند محاولة ضغط تسلسل مُعد خصيصًا من الأحرف في البيانات الواردة. وفي شكله الحالي، أثبت الباحثون القدرة على التسبب في إنهاء العملية بشكل غير طبيعي. لم يتم بعد دراسة ما إذا كانت المشكلة يمكن أن يكون لها عواقب أكثر خطورة.

تظهر الثغرة الأمنية بدءًا من الإصدار zlib 1.2.2.2 وتؤثر أيضًا على الإصدار الحالي من zlib 1.2.11. من الجدير بالذكر أنه تم اقتراح تصحيح لتصحيح الثغرة الأمنية في عام 2018، لكن المطورين لم ينتبهوا إليه ولم يصدروا إصدارًا تصحيحيًا (تم تحديث مكتبة zlib آخر مرة في عام 2017). الإصلاح أيضًا لم يتم تضمينه بعد في الحزم التي تقدمها التوزيعات. يمكنك تتبع نشر الإصلاحات حسب التوزيعات على هذه الصفحات: Debian، RHEL، Fedora، SUSE، Ubuntu، Arch Linux، OpenBSD، FreeBSD، NetBSD. مكتبة zlib-ng لا تتأثر بالمشكلة.

تحدث الثغرة الأمنية إذا كان تدفق الإدخال يحتوي على عدد كبير من التطابقات المراد حزمها، والتي يتم تطبيق التعبئة عليها بناءً على رموز هوفمان الثابتة. في ظل ظروف معينة، قد تتداخل محتويات المخزن المؤقت الوسيط الذي يتم وضع النتيجة المضغوطة فيه مع الذاكرة التي يتم تخزين جدول تردد الرمز فيها. ونتيجة لذلك، يتم إنشاء بيانات مضغوطة غير صحيحة وتتعطل بسبب الكتابة خارج حدود المخزن المؤقت.

ولا يمكن استغلال الثغرة الأمنية إلا باستخدام استراتيجية ضغط تعتمد على رموز هوفمان الثابتة. يتم اختيار استراتيجية مماثلة عندما يتم تمكين خيار Z_FIXED بشكل صريح في التعليمات البرمجية (مثال على التسلسل الذي يؤدي إلى التعطل عند استخدام خيار Z_FIXED). إذا حكمنا من خلال الكود، يمكن أيضًا تحديد إستراتيجية Z_FIXED تلقائيًا إذا كانت الأشجار المثالية والثابتة المحسوبة للبيانات لها نفس الحجم.

ليس من الواضح حتى الآن ما إذا كان من الممكن تحديد شروط استغلال الثغرة الأمنية باستخدام استراتيجية الضغط الافتراضية Z_DEFAULT_STRATEGY. إذا لم يكن الأمر كذلك، فستقتصر الثغرة الأمنية على أنظمة محددة تستخدم الخيار Z_FIXED بشكل صريح. إذا كان الأمر كذلك، فقد يكون الضرر الناتج عن الثغرة الأمنية كبيرًا للغاية، نظرًا لأن مكتبة zlib هي معيار فعلي ويتم استخدامها في العديد من المشاريع الشائعة، بما في ذلك Linux kernel وOpenSSH وOpenSSL وApache httpd وlippng وFFmpeg وrsync وdpkg. ، rpm، Git، PostgreSQL، MySQL، إلخ.

المصدر: opennet.ru

إضافة تعليق