کتابخانه محبوب PyMuPDF که برای پردازش فایلهای PDF در محیط پایتون (Python) استفاده میشود، با یک آسیبپذیری بحرانی از نوع Stack-based Buffer Overflow مواجه شده است. این نقص امنیتی در نسخههای 1.25.3 و قدیمیتر (پیش از نسخه 2.0) شناسایی شده است.
جزئیات فنی آسیبپذیری
مشکل اصلی در تابع JM_set_annot_callout_line() نهفته است. این تابع تعداد مشخصی از نقاط (callout points) را که توسط کاربر ارسال شده است، در یک آرایه ثابت سه المانی در Stack کپی میکند. مهاجم میتواند با کنترل آرگومان callout در متد Page.add_freetext_annot()، بیش از سه نقطه را ارسال کند.
این اقدام باعث سرریز شدن بافر و بازنویسی Stack Frame میشود که میتواند منجر به دو سناریوی زیر شود:
- Denial of Service (DoS): از کار افتادن ناگهانی فرآیند پردازش.
- Remote Code Execution (RCE): اجرای کدهای مخرب توسط مهاجم.
اقدامات پیشنهادی
توسعهدهندگان و مدیران سیستم توصیه میشود برای جلوگیری از سوءاستفاده، بلافاصله کتابخانه PyMuPDF خود را به نسخه 2.0 یا بالاتر بهروزرسانی کنند.