pyfory یک چارچوب سریالیسازی چندزبانه است که امکان تبدیل ساختارهای داده به بایتها و بازسازی آنها را فراهم میکند. اخیراً یک نقص امنیتی حیاتی با شناسه CVE-2025-61622 و شدت 9.8 در کتابخانهٔ pyfory (و نسخههای قدیمیتر آن که تحت نام pyfury منتشر شدهاند) شناسایی شده است. این آسیبپذیری در فرآیند بازسازی (deserialization) دادهها از حالت سریالی رخ میدهد و در صورت استفاده از دادههای ناامن میتواند منجر به اجرای کد از راه دور (RCE) شود.
جزئیات آسیبپذیری
در نسخههای آسیبپذیر کتابخانهٔ pyfory/pyfury، هنگام بازگردانی دادهها از فرمت باینری، اگر ورودی (دادهٔ سریالیشده) از منبعی ناامن تامین شود، مهاجم میتواند ساختار بایتها را طوری بسازد که کتابخانه مسیر بازسازی را به سمت گزینهٔ پشتیبان «خطرناک» هدایت کند. در این نقطه، کتابخانه تابع ()pickle.loads را اجرا میکند. از آنجا که این گزینهٔ پشتیبان قادر است در زمان بارگذاری اشیاء اجرای کد دلخواه را انجام دهد، سوءاستفاده از این وضعیت میتواند به اجرای کد مخرب روی سرور منجر شود.
بردار حمله (CVSS 3.1): AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H نشان میدهد این آسیبپذیری:
- قابل بهرهبرداری از راه دور است (AV:N)،
- پیچیدگی بهرهبرداری پایین است (AC:L)،
- نیازمند هیچگونه احراز هویتی نیست (PR:N)،
- نیازی به تعامل کاربر ندارد (UI:N)،
- تأثیر شدید بر محرمانگی، یکپارچگی و دسترسپذیری دارد (C:H / I:H / A:H).
بهرهبرداری موفق میتواند منجر به افشای اطلاعات حساس، تغییر یا تخریب دادهها و حتی از کار افتادن کامل سرویس شود.
نسخههای تحتتأثیر
- pyfory: نسخههای 0.12.0 تا 0.12.2
- pyfury: نسخههای 0.1.0 تا 0.10.3
توصیههای امنیتی
- ارتقاء فوری: بهروزرسانی به نسخهٔ امن pyfory 0.12.3 یا نسخههای بالاتر.
- عدم پذیرش دادههای سریالیشده از منابع ناامن: هرگز دادههای سریالیشده را از منابع ناشناس یا غیرقابل اعتماد بازنویسی نکنید.
- در صورت نیاز به پردازش ورودیهای سریالیشده از منابع بیرونی، از مکانیزمهای امن مانند فیلترسازی ساختار، whitelist کردن نوع اشیاء مجاز یا استفاده از فرمتهای سریالیسازی امنتر (که اجرای کد را هنگام deserialize امکانپذیر نکنند) بهره ببرید.
- پس از رفع مشکل، بررسی لاگها برای شواهد نفوذ و در صورت لزوم چرخش کلیدها/اعتبارات حساس را انجام دهید.
منابع خبر:
[1]https://nvd.nist.gov/vuln/detail/CVE-2025-61622
[2]https://www.cve.org/CVERecord?id=CVE-2025-61622
[3]https://lists.apache.org/thread/vfn9hp9qt06db5yo1gmj3l114o3o2csd
[4]https://euvd.enisa.europa.eu/vulnerability/CVE-2025-61622
- 46