واکنش اکوسیستم Python به رخنه در intermediate CA متعلق به eMudhra

چرا مهم است

اگر از pip یا virtual environment استفاده می‌کنی، این رخداد به زنجیره ابزارهای تو هم مربوط است. گزارش نشان می‌دهد چرا اصلاح certifi به‌تنهایی تمام وضعیت‌های Python،؜ به‌ویژه نسخه‌های قدیمی‌تر، را پوشش نمی‌داد.

قبل از خواندن، این‌ها را بدان۵ مفهوم
intermediate CA

یک CA در زنجیره اعتماد که اعتبارش را از CA بالادست می‌گیرد و می‌تواند certificate صادر کند.

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

certificate

سندی دیجیتال که هویت یک موجودیت را به کلید عمومی آن مرتبط می‌کند و در ارتباط امن برای بررسی هویت به کار می‌رود.

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

virtual environment

محیطی جدا برای Python که package‌های نصب‌شده در آن مستقل از محیط‌های دیگر مدیریت می‌شوند.

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

نمایش همه (۵)
Certificate Revocation List

فهرستی از certificate‌های باطل‌شده که به بررسی‌کننده اجازه می‌دهد بدون انتظار برای به‌روزرسانی نرم‌افزار، از بی‌اعتبارشدن آن‌ها مطلع شود.

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

TLS handshake

مرحله آغاز ارتباط TLS که در آن طرفین تنظیمات امنیتی را توافق و هویت لازم را با certificate بررسی می‌کنند.

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

Python Software Foundation در گزارشی توضیح داده که اکوسیستم Python چگونه به رخنه در intermediate CA متعلق به eMudhra واکنش نشان داد؛ خبری که ۲۰ اکتبر ۲۰۲۶ منتشر شد. چون فرض امن‌بودن HTTPS در بخش‌های مختلف برنامه‌ها و فرایند packaging در Python وجود دارد، پاسخ باید پروژه‌ها و سرویس‌های متعددی را پوشش می‌داد.

به‌گفته این بنیاد، حضور Seth Larson در نقش Security Developer-in-Residence امکان شروع فوری کار را فراهم کرد. ارتباط قبلی با نگه‌دارندگان پروژه‌ها نیز به هماهنگی کمک کرد. هزینه این موقعیت شغلی را Alpha-Omega تأمین می‌کند. اقدامات مهار رخداد در چندین مؤلفه ظرف دو روز انجام شد و برای پروژه‌هایی از جمله certifi،؜ Python،؜ pip،؜ uv،؜ sigstore،؜ virtualenv،؜ conda و pixi اصلاحیه ارائه شد.

نسخه‌های آسیب‌پذیر certifi،؜ pip و sigstore در تمام پروژه‌ها و سرویس‌های تحت مدیریت بنیاد، از جمله PyPI،؜ فرایند انتشار Python و python.org،؜ اصلاح شدند. container‌ها نیز با مجموعه صحیح certificate‌ها دوباره build شدند. انتشار هشدارها، رکوردهای CVE و اعلان‌ها بخشی از اطلاع‌رسانی به جامعه بود.

در مرکز این زنجیره، certifi قرار داشت؛ package‌ای که مجموعه CA متعلق به Mozilla را عرضه می‌کند و پروژه‌هایی مثل pip و requests از آن استفاده می‌کنند. این مجموعه فقط root CA دارد، نه intermediate CA؛ بنابراین برای بی‌اعتمادکردن همه certificate‌های میانی آسیب‌دیده، لازم بود «emSign Root TLS CA - G3» از آن حذف شود.

وابستگی‌ها پاسخ را پیچیده‌تر کردند: pip وابستگی‌هایش، از جمله Requests و در نتیجه certifi،؜ را همراه خود دارد. Python نیز از طریق ensurepip،؜ نسخه‌ای از pip را برای virtual environment‌های تازه فراهم می‌کند. در نسخه‌های قدیمی Python،؜ ملاحظات سازگاری مانع پاسخ ساده بود. برای پوشش این وضعیت، Python یک denylist اضطراری اضافه کرد تا certificate‌های میانی آسیب‌دیده هنگام TLS handshake رد شوند. این اصلاح با CVE-2026-115557 پیگیری و به نسخه‌های قدیمی‌تر نیز منتقل شده است.

گزارش همچنین تفاوت مرورگرها با ابزارهایی مثل pip،؜ git و uv را توضیح می‌دهد: مرورگرها با Certificate Revocation List،؜ بدون نیاز به به‌روزرسانی نرم‌افزار، سریع واکنش نشان دادند. استفاده از چنین سازوکاری در Python هنوز یک امکان آینده است. بنیاد اکنون پذیرش نسخه‌های اصلاح‌شده certifi را دنبال می‌کند و upki،؜ که Ubuntu آن را پذیرفته، از پروژه‌های قابل پیگیری در این زمینه است.

نکته کلیدی

برای پیگیری اصلاحات، فقط به نسخه certifi نگاه نکن؛ Python و pip هم در این زنجیره نقش دارند. هشدارهای security-announce را دنبال کن تا از اقدام‌های لازم برای رخدادهای مشابه باخبر بمانی.

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