Exim-ийн чухал эмзэг байдлын нарийвчилсан мэдээллийг илчилсэн

Нийтэлсэн залруулах хувилбар Exim 4.92.2 эгзэгтэй байдлыг арилгах замаар эмзэг байдал (CVE-2019-15846), энэ нь анхдагч тохиргоонд root эрхтэй халдагчид алсын кодыг гүйцэтгэхэд хүргэдэг. Асуудал нь TLS-ийн дэмжлэгийг идэвхжүүлсэн үед л гарч ирдэг бөгөөд SNI-д тусгайлан боловсруулсан үйлчлүүлэгчийн гэрчилгээ эсвэл өөрчилсөн утгыг дамжуулснаар ашиглагдана. Эмзэг байдал тодорхойлсон Qualys.

асуудал байгаа Мөр дэх тусгай тэмдэгтүүдээс зугтах зохицуулагчд (string_interpret_escape() string.c-аас) ба тэмдэгт мөрийн төгсгөлд байгаа '\' тэмдэгтийг тэг тэмдэгтээс ('\0') өмнө тайлбарлаж, түүнээс зугтсанаас үүсдэг. Зугтах үед '\' дараалал болон дараах мөрийн төгсгөлийн кодыг нэг тэмдэгт болгон авч заагчийг шугамын гаднах өгөгдөл рүү шилжүүлж, мөрийн үргэлжлэл гэж үзнэ.

string_interpret_escape() гэж дууддаг код нь бодит хэмжээнээс хамааран drain-д буфер хуваарилдаг бөгөөд ил заагч нь буферийн хязгаараас гадуурх хэсэгт дуусдаг. Үүний дагуу, оролтын мөрийг боловсруулах гэж оролдох үед хуваарилагдсан буферийн хязгаараас гадуурх хэсгээс өгөгдлийг унших үед нөхцөл байдал үүсч, гадагш гарахгүй мөр бичих оролдлого нь буферийн хязгаараас хэтрүүлэн бичихэд хүргэдэг.

Анхдагч тохиргоонд сервертэй аюулгүй холболт үүсгэх үед тусгайлан боловсруулсан өгөгдлийг SNI руу илгээх замаар эмзэг байдлыг ашиглаж болно. Үйлчлүүлэгчийн гэрчилгээг баталгаажуулах эсвэл сертификат импортлоход тохируулсан тохиргоон дахь peerdn утгыг өөрчлөх замаар асуудлыг ашиглаж болно. Суллагдсан цагаасаа эхлэн SNI болон peerdn-ээр дайрах боломжтой Exim 4.80, string_unprinting() функцийг peerdn болон SNI контентыг хэвлэхэд ашигласан.

Glibc-тэй Линукс системүүд дээр i386 болон amd64 архитектурууд дээр ажиллаж байгаа SNI-ээр дамжуулан халдлагад зориулж exploit-ийн прототипийг бэлтгэсэн. Эксплойт нь овоолгын талбар дээрх өгөгдлийн давхаргыг ашигладаг бөгөөд үүний үр дүнд лог файлын нэр хадгалагдсан санах ойг дарж бичдэг. Файлын нэрийг "/../../../../../../../../etc/passwd" гэж сольсон. Дараа нь илгээгчийн хаягтай хувьсагчийг дарж бичсэн бөгөөд энэ нь эхлээд бүртгэлд хадгалагдах бөгөөд энэ нь системд шинэ хэрэглэгч нэмэх боломжийг олгодог.

Түгээлтээс гаргасан эмзэг байдлын засвар бүхий багц шинэчлэлтүүд Debian, Ubuntu, Федора, SUSE/openSUSE и FreeBSD-ийн. RHEL болон CentOS-ийн асуудал мэдрэмтгий биш, Exim нь тэдний ердийн багцын санд ороогүй тул ДУЛААН шинэчлэх аль хэдийн үүссэн, гэхдээ одоохондоо байрлуулаагүй нийтийн агуулах руу). Exim кодын хувьд асуудлыг нэг давхаргын тусламжтайгаар засдаг нөхөөс, энэ нь мөрийн төгсгөлд байгаа бол урвуу зурааснаас зугтах эффектийг идэвхгүй болгодог.

Эмзэг байдлыг хаахын тулд та TLS дэмжлэгийг идэвхгүй болгох эсвэл нэмэх боломжтой
ACL хэсэг "acl_smtp_mail":

үгүйсгэх нөхцөл = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
үгүйсгэх нөхцөл = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх