مرور PyCoder’s Weekly: رفع آسیب‌پذیری Pillow و برنامه حذف JIT آزمایشی CPython

چرا مهم است

اگر با Pillow فایل تصویری پردازش می‌کنی، خبر رفع امکان اجرای کد از طریق EPS برایت مهم است. اگر هم از Polars استفاده می‌کنی، تغییر پیش‌فرض‌های نسخه 2.0 ممکن است روی روند فعلی کارت اثر بگذارد.

قبل از خواندن، این‌ها را بدان۴ مفهوم
JIT

مخفف Just-in-Time؛ روشی که در آن بخشی از برنامه هنگام اجرا به کد ماشین تبدیل می‌شود.

بیشتر درباره این مفهوم

EPS

یک فرمت فایل مبتنی بر PostScript برای نگهداری محتوای گرافیکی.

بیشتر درباره این مفهوم

Type Checking

بررسی سازگاری نوع داده‌ها و نحوه استفاده از آن‌ها با قواعد نوع در برنامه.

بیشتر درباره این مفهوم

type hint

نشانه‌ای در کد Python برای مشخص‌کردن نوع مورد انتظار متغیر، ورودی یا خروجی تابع.

بیشتر درباره این مفهوم

شماره ۷۵۹ خبرنامه PyCoder’s Weekly، منتشرشده در ۳ نوامبر ۲۰۲۶، مجموعه‌ای از خبرهای امنیتی، تغییرات ابزارها و مطالب آموزشی Python را گردآوری کرده است. رفع آسیب‌پذیری Pillow و برنامه حذف JIT آزمایشی CPython از خبرهای اصلی این شماره هستند.

در Pillow یک آسیب‌پذیری بحرانی پیدا شده که فایل EPS دست‌کاری‌شده می‌تواند از طریق آن باعث اجرای کد شود. نسخه Pillow 13.0.0 این مشکل و چند مشکل دیگر را برطرف کرده است. خبرنامه همچنین انتشار Python 3.15.2، 3.14.10، 3.13.18، 3.12.16 و 3.11.18 را اعلام می‌کند، اما درباره تغییرات این نسخه‌ها جزئیاتی نمی‌دهد.

در خبری جداگانه، PEP 836 پس گرفته شده و قرار است JIT آزمایشی از branch اصلی CPython حذف شود. مطلب معرفی‌شده به مسیر طی‌شده این JIT و احتمال‌های پیش روی آن می‌پردازد؛ خلاصه خبرنامه زمان مشخصی برای حذف یا جزئیات بیشتری از آینده آن ارائه نمی‌کند.

Google نیز زیرساخت قبلی Type Checking خود را با Pyrefly جایگزین کرده است. طبق مطلب معرفی‌شده، این جایگزینی سرعت کار مهندس‌ها و agent‌ها را به‌طور قابل‌توجهی افزایش داده و منابع محاسباتی مصرفی build system را به‌شکل محسوسی کاهش داده است. خبرنامه همچنین نتایج نظرسنجی Python Typing سال ۲۰۲۶ را معرفی می‌کند: استفاده از type hint تا حدی تغییر کرده، اما انتخاب type checker تغییر چشمگیری داشته است.

در بخش داده، Polars 2.0 با streaming پیش‌فرض و قواعد سخت‌گیرانه‌تر Type Checking مطرح شده است. این نسخه lazy query‌ها را بدون تغییر کد سریع‌تر می‌کند، اما پیش‌فرض‌های تازه ممکن است روی روندهای موجود اثر بگذارند. مطلب مربوط به آن، spill-to-disk، تغییر ترتیب join و شناسایی کاهش دقت بی‌سروصدا را بررسی می‌کند.

از مطالب آموزشی این شماره می‌توان به ساخت static site generator با ترکیب nanodjango، django-nanopages و django-distill، مقایسه ذخیره تصویر در فایل PNG، LMDB و HDF5 و معرفی Tachyon برای sampling profiling اشاره کرد. آموزش امنیت supply chain با بررسی backdoor در LiteLLM نیز در فهرست قرار دارد.

نکته کلیدی

رفع مشکل EPS به Pillow 13.0.0 مربوط است؛ آن را با اعلام انتشار نسخه‌های Python یکی نگیر. درباره JIT هم تفاوت را به خاطر بسپار: خبر از برنامه حذف آن از branch اصلی CPython می‌گوید، نه حذف انجام‌شده.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۴)