Scrapy یک خزندهی وب (web crawler) رایگان و متنباز است که به زبان پایتون نوشته شده است. این پلتفرم میتواند جهت استخراج دادهها با استفاده از API یا به عنوان یک خزندهی وب همه منظوره استفاده شود. دو آسیبپذیری با شدت بالا در scrapy کشف شدهاند که جزئیات هریک به شرح ذیل است:
• آسیبپذیری با شناسهی CVE-2024-3572 و شدت 7.5، یک نقص XXE (XML External Entity) است که به دلیل استفاده از تابع lxml.etree.fromstring برای تجزیه و تحلیل دادههای XML نامعتبر به وجود میآید.
ماژول پردازش XML مورد استفاده در برابر دادههای مخرب ایمن نیست. مهاجم میتواند از ویژگیهای XML جهت انجام حملات انکار سرویس، دسترسی به فایلهای محلی، ایجاد اتصالات شبکه به سیستمهای دیگر، یا دور زدن فایروالها بهرهبرداری کند.
• آسیبپذیری دیگر که با شناسهی CVE-2024-3574 و شدت 7.5 ردیابی میشود، از عدم حذف سربرگ مجوز (Autherization Header) هنگام جابجایی بین دامنهها ناشی میشود. این امر موجب میشود که سربرگ مجوز، که حاوی اطلاعات اعتبارسنجی و احراز هویت سرور است در حین این جابجایی میان دامنهها به یک سایت شخصثالث (یک سایت بیگانه) درز کند.
این افشای سربرگ مجوز نسبت به کاربران غیرمجاز، میتواند امکان سرقت حساب کاربری را فراهم کند.
محصولات تحت تأثیر
- آسیبپذیری با شناسه CVE-2024-3572 تمام نسخههای scrapy را تحت تأثیر قرار میدهد.
- آسیبپذیری با شناسه CVE-2024-3574 نسخهی 2.10.1 scrapy را تحت تأثیر قرار میدهد.
توصیههای امنیتی
جهت رفع آسیبپذیری با شناسه CVE-2024-3572، توصیه میشود تابع lxml.etree.fromstring با تابع معادل آن defusedxml جایگزین شود.
defusedxml یک پکیج پایتون شامل زیر کلاسهای اصلاح شدهای از تمام تجزیهکنندههای XML stdlib است که از هرگونه عملیات مخرب بالقوه جلوگیری میکند. استفاده از این پکیج برای هر کد سروری که داده های XML نامعتبر را تجزیه میکند توصیه میشود. این پکیج همچنین نمونهکدهایی از بهرهبرداری و مستندات گسترده در مورد بهرهبرداریهایی از آسیبپذیریهای مرتبط با XML مانند تزریق XPath را در بر دارد.
جهت رفع آسیبپذیری با شناسه CVE-2024-3574، اقدام سریع جهت ارتقا به نسخههای بالاتر از 2.10.1 توصیه میشود.
منابع خبر:
[1] https://nvd.nist.gov/vuln/detail/CVE-2024-3572
[2] https://huntr.com/bounties/c4a0fac9-0c5a-4718-9ee4-2d06d58adabb
[3] https://nvd.nist.gov/vuln/detail/CVE-2024-3574
[4] https://huntr.com/bounties/49974321-2718-43e3-a152-62b16eed72a9
- 41