Curl 7.71.0 منتشر شد و دو آسیب‌پذیری را برطرف کرد

در دسترس نسخه جدید ابزار برای دریافت و ارسال داده ها از طریق شبکه - سوراخ 7.71.0، که توانایی فرمول بندی انعطاف پذیر یک درخواست را با تعیین پارامترهایی مانند کوکی، user_agent، ارجاع دهنده و هر هدر دیگری فراهم می کند. cURL از پروتکل های HTTP، HTTPS، HTTP/2.0، HTTP/3، SMTP، IMAP، POP3، Telnet، FTP، LDAP، RTSP، RTMP و سایر پروتکل های شبکه پشتیبانی می کند. در همان زمان، یک به روز رسانی برای کتابخانه libcurl منتشر شد که به صورت موازی در حال توسعه است و یک API برای استفاده از تمام توابع curl در برنامه ها به زبان هایی مانند C، Perl، PHP، Python ارائه می دهد.

نسخه جدید گزینه «-retry-all-errors» را اضافه می کند تا در صورت بروز هر گونه خطایی، عملیات را دوباره امتحان کنید و دو آسیب پذیری را برطرف می کند:

  • آسیب پذیری CVE-2020-8177 به شما امکان می دهد هنگام دسترسی به سروری که توسط مهاجم کنترل می شود، یک فایل محلی را در سیستم بازنویسی کنید. مشکل تنها زمانی ظاهر می شود که گزینه های "-J" ("–remote-header-name") و "-i" ("-head") به طور همزمان استفاده شوند. گزینه "-J" به شما اجازه می دهد تا فایل را با نام مشخص شده در هدر ذخیره کنید
    "محتوا-موضوع". اگر فایلی با همین نام از قبل وجود داشته باشد، برنامه curl معمولا از انجام رونویسی امتناع می کند، اما اگر گزینه "-i" وجود داشته باشد، منطق بررسی شکسته شده و فایل رونویسی می شود (بررسی در مرحله انجام می شود. از دریافت بدنه پاسخ، اما با گزینه "-i" سرصفحه های HTTP ابتدا نمایش داده می شوند و قبل از شروع پردازش بدنه پاسخ، زمان ذخیره شدن دارند). فقط هدرهای HTTP روی فایل نوشته می شوند، اما سرور می تواند داده های دلخواه را به جای هدر ارسال کند و آنها نوشته می شوند.

  • آسیب پذیری CVE-2020-8169 ممکن است منجر به نشت برخی از رمزهای عبور دسترسی به سایت (Basic، Digest، NTLM و غیره) به سرور DNS شود. با استفاده از نماد "@" در رمز عبور، که به عنوان جداکننده رمز عبور در URL نیز استفاده می شود، هنگامی که یک تغییر مسیر HTTP راه اندازی می شود، curl بخشی از رمز عبور را بعد از نماد "@" به همراه دامنه ارسال می کند تا حل شود. نام. به عنوان مثال، اگر رمز عبور "passw@rd123" و نام کاربری "dan" را ارائه دهید، curl URL "https://dan:passw@" را ایجاد می کند.[ایمیل محافظت شده]/path" به جای "https://dan:passw%"[ایمیل محافظت شده]/path" و یک درخواست برای حل هاست ارسال می کند "[ایمیل محافظت شده]" به جای "example.com".

    مشکل زمانی ظاهر می شود که پشتیبانی از تغییر مسیرهای HTTP نسبی فعال باشد (از طریق CURLOPT_FOLLOWLOCATION غیرفعال شده است). در صورت استفاده از DNS سنتی، اطلاعات مربوط به بخشی از رمز عبور را می‌توان توسط ارائه‌دهنده DNS و مهاجمی که توانایی رهگیری ترافیک شبکه حمل و نقل را دارد (حتی اگر درخواست اولیه از طریق HTTPS باشد، زیرا ترافیک DNS رمزگذاری نشده است) به دست آورد. هنگامی که از DNS-over-HTTPS (DoH) استفاده می شود، نشت به اپراتور DoH محدود می شود.

منبع: opennet.ru

اضافه کردن نظر