خانه » ریسک تصاحب دامنه در بسته‌های قدیمی Python: اسکریپت‌های Bootstrap آسیب‌پذیر شناسایی شدند!

ریسک تصاحب دامنه در بسته‌های قدیمی Python: اسکریپت‌های Bootstrap آسیب‌پذیر شناسایی شدند!

توسط Vulnerbyte_News
207 بازدید
Legacy Python Bootstrap Scripts Create Domain-Takeover Risk in Multiple PyPI Packages گروه والنربایت vulnerbyte

محققان امنیت سایبری آسیب‌پذیری مهمی را در بسته‌های قدیمی Python شناسایی کرده‌اند که می‌تواند زمینه‌ساز یک حمله Supply Chain در مخزن PyPI از طریق تصاحب دامنه (Domain Takeover) شود.
این ضعف در اسکریپت‌های Bootstrap مربوط به ابزار zc.buildout کشف شده است؛ جایی که یک دامنه قدیمی و رهاشده هنوز در کدهای نصب بسته‌ها مورد استفاده قرار می‌گیرد.

مشکل از کدام یک از بسته‌های قدیمی Python شروع شده؟

طبق گزارش ReversingLabs، اسکریپت‌های Bootstrap فرآیند دانلود، ساخت و نصب ابزارهای موردنیاز را خودکار می‌کنند.
اما یک بخش از این اسکریپت‌ها اسکریپت نصب بسته Distribute را از دامنه‌ای قدیمی به نام:

				
					python-distribute[.]org

				
			

دانلود و اجرا می‌کنند — دامنه‌ای که از سال ۲۰۱۴ برای فروش گذاشته شده است و اکنون صرفاً برای درآمدزایی تبلیغاتی مدیریت می‌شود.

این یعنی اگر یک مهاجم دامنه را خریداری کند، می‌تواند اسکریپت‌های مخرب را در فرآیند نصب تزریق کرده و عملاً زنجیره تأمین PyPI را آلوده کند.

🟦 کدام بسته‌ها در معرض خطرند؟

چندین بسته PyPI همچنان اسکریپت آسیب‌پذیر را همراه خود منتشر می‌کنند:

  • tornado

  • pypiserver

  • slapos.core

  • roman

  • xlutils

  • testfixtures

به‌ویژه slapos.core و نسخه‌های توسعه‌ای Tornado همچنان کد آسیب‌پذیر را شامل می‌شوند.

🟦 چرا این اسکریپت خطرناک است؟

فایل bootstrap.py در گذشته برای راه‌اندازی محیط Buildout استفاده می‌شد و قابلیت نصب بسته Distribute را داشت.
این بسته یک fork کوتاه از Setuptools بود و در ۲۰۱۳ مجدداً در Setuptools ادغام شد. اما:

  • اسکریپت Bootstrap هنوز وجود دارد

  • همچنان تلاش می‌کند فایل نصب را از دامنه رهاشده دانلود کند

  • دامنه قابل خرید است → پس قابل تسخیر و سوءاستفاده نیز هست

در نتیجه، هر توسعه‌دهنده‌ای که اسکریپت را اجرا کند، ممکن است ناخواسته کد مهاجم را اجرا کند.

🟦 حمله چگونه ممکن می‌شود؟

اگر مهاجم دامنه را تصاحب کند، می‌تواند:

  1. اسکریپت نصب مخرب ارائه دهد

  2. کد را در زمان Bootstrap اجرا کند

  3. داده‌های حساس را سرقت کند

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

  5. زمینه یک Supply Chain Attack را فراهم کند

این دقیقاً همان الگوی Downloader Behavior در بدافزارهاست:
اجرای Payload از یک دامنه Hard-Coded.

🟦 مشکل فقط تئوری نیست

در سال ۲۰۲۳، بسته npm با نام fsevents قربانی حمله مشابه شد.
مهاجم یک آدرس S3 رهاشده را تصاحب کرد و فایل‌های مخرب برای کاربران ارسال شد:

CVE-2023-45311 — امتیاز CVSS: 9.8

این نشان می‌دهد که ریسک Domain Takeover کاملاً عملی است.

🟦 ریسک‌های پنهان: حتی اگر اسکریپت خودکار اجرا نشود

نکته مهم:

  • اسکریپت Bootstrap در مرحله نصب بسته اجرا نمی‌شود

  • اسکریپت با Python 2 نوشته شده و با Python 3 سازگار نیست

اما:
همین فایلِ بلااستفاده سطح حمله اضافه ایجاد می‌کند.

اگر توسعه‌دهنده فریب بخورد و آن را اجرا کند، مسیر حمله باز می‌شود.

🟦 کشف بدافزار جدید در PyPI: spellcheckers

همزمان با این تحقیقات، HelixGuard یک بسته بدافزاری جدید با نام:

				
					spellcheckers

				
			

را شناسایی کرده که:

  • ظاهراً ابزار بررسی املای مبتنی بر OpenAI Vision معرفی شده

  • اما درواقع به سرور خارجی وصل می‌شود

  • Payload مرحله دوم را دانلود می‌کند

  • یک RAT (Remote Access Trojan) اجرا می‌کند

  • دسترسی کامل از راه دور به مهاجم می‌دهد

این بسته در ۱۵ نوامبر ۲۰۲۵ آپلود شد و ۹۵۵ دانلود داشته است.

🔚 جمع‌بندی Vulnerbyte

مشکل اسکریپت‌های Bootstrap یک تهدید خاموش و گسترده برای اکوسیستم Python است.
ترکیب سه عامل:

  • دامنه رهاشده و قابل تصاحب

  • کد Legacy و بلااستفاده

  • توسعه‌دهندگان غافل یا محیط‌های CI/CD قدیمی

همگی می‌توانند زمینه‌ساز یک Supply Chain Attack بزرگ شوند.
واقعیت این است:
دو خط کد قدیمی می‌توانند یک زنجیره تأمین را منفجر کنند.

منابع:

همچنین ممکن است دوست داشته باشید

پیام بگذارید