curl 7.71.0 chiqarildi, ikkita zaiflikni tuzatdi

Mavjud tarmoq orqali ma'lumotlarni qabul qilish va yuborish uchun yordamchi dasturning yangi versiyasi - 7.71.0 burni, bu cookie, user_agent, referer va boshqa har qanday sarlavhalar kabi parametrlarni belgilash orqali so'rovni moslashuvchan shakllantirish imkoniyatini beradi. cURL HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, Telnet, FTP, LDAP, RTSP, RTMP va boshqa tarmoq protokollarini qo'llab-quvvatlaydi. Shu bilan birga, parallel ravishda ishlab chiqilayotgan libcurl kutubxonasi uchun C, Perl, PHP, Python kabi tillardagi dasturlarda barcha curl funksiyalaridan foydalanish uchun API taqdim etuvchi yangilanish chiqarildi.

Yangi versiyada xatolar yuzaga kelganda operatsiyalarni qaytadan urinish uchun “--retry-all-errors” opsiyasi qo‘shiladi va ikkita zaiflik tuzatiladi:

  • Zaiflik CVE-2020-8177 tajovuzkor tomonidan boshqariladigan serverga kirishda tizimdagi mahalliy faylni qayta yozish imkonini beradi. Muammo faqat “-J” (“–remote-header-name”) va “-i” (“-head”) parametrlari bir vaqtda foydalanilganda paydo bo'ladi. "-J" opsiyasi sarlavhada ko'rsatilgan nom bilan faylni saqlashga imkon beradi
    "Kontent-dispozitsiya". Agar xuddi shu nomdagi fayl allaqachon mavjud bo'lsa, curl dasturi odatda qayta yozishni rad etadi, ammo "-i" opsiyasi mavjud bo'lsa, tekshirish mantig'i buziladi va fayl qayta yoziladi (tekshirish bosqichda amalga oshiriladi. javob tanasini qabul qilish, lekin "-i" opsiyasi bilan HTTP sarlavhalari birinchi bo'lib ko'rsatiladi va javob matni qayta ishlanishi boshlanishidan oldin saqlanishi kerak). Faylga faqat HTTP sarlavhalari yoziladi, lekin server sarlavhalar o'rniga ixtiyoriy ma'lumotlarni yuborishi mumkin va ular yoziladi.

  • Zaiflik CVE-2020-8169 ba'zi saytlarga kirish parollarining (Basic, Digest, NTLM va boshqalar) DNS serveriga sizib chiqishiga olib kelishi mumkin. URL manzilida parol ajratuvchi sifatida ham foydalaniladigan paroldagi "@" belgisidan foydalanib, HTTP qayta yo'naltirish ishga tushirilganda, curl hal qilish uchun "@" belgisidan keyin parolning bir qismini domen bilan birga yuboradi. ism. Masalan, agar siz “passw@rd123” parolini va “dan” foydalanuvchi nomini kiritsangiz, curl “https://dan:passw@” URL manzilini yaratadi.[elektron pochta bilan himoyalangan]"https://dan:passw%" o'rniga /path"[elektron pochta bilan himoyalangan]/path" va xostni hal qilish uchun so'rov yuboradi "[elektron pochta bilan himoyalangan]"example.com" o'rniga ".

    Muammo nisbiy HTTP qayta yo'naltiruvchilarni qo'llab-quvvatlash yoqilganda paydo bo'ladi (CURLOPT_FOLLOWLOCATION orqali o'chirilgan). Agar an'anaviy DNS ishlatilsa, parolning bir qismi haqidagi ma'lumotni DNS provayderi va tranzit tarmoq trafigini ushlab turish qobiliyatiga ega bo'lgan tajovuzkor olishi mumkin (hatto dastlabki so'rov HTTPS orqali bo'lsa ham, chunki DNS trafigi shifrlanmagan). DNS-over-HTTPS (DoH) ishlatilsa, oqish DoH operatori bilan cheklanadi.

Manba: opennet.ru

a Izoh qo'shish