problem
Koden som anropar string_interpret_escape() allokerar en buffert för avloppet baserat på den faktiska storleken, och den exponerade pekaren hamnar i ett område utanför buffertens gränser. Följaktligen, när man försöker bearbeta en inmatningssträng, uppstår en situation när man läser data från ett område utanför gränserna för den allokerade bufferten, och ett försök att skriva en icke-escaped sträng kan leda till skrivning utanför buffertens gränser.
I standardkonfigurationen kan sårbarheten utnyttjas genom att skicka specialdesignad data till SNI när en säker anslutning till servern upprättas. Problemet kan också utnyttjas genom att ändra peerdn-värden i konfigurationer konfigurerade för klientcertifikatautentisering eller vid import av certifikat. Attack via SNI och peerdn är möjlig från och med release
En exploateringsprototyp har förberetts för en attack via SNI, som körs på i386- och amd64-arkitekturerna på Linux-system med Glibc. Exploateringen använder dataöverlagring på heapområdet, vilket resulterar i att minnet där loggfilens namn är lagrat skrivs över. Filnamnet ersätts med "/../../../../../../../../etc/passwd". Därefter skrivs variabeln med avsändarens adress över, som först sparas i loggen, vilket gör att du kan lägga till en ny användare i systemet.
Paketuppdateringar med sårbarhetskorrigeringar släppta av distributioner
Som en lösning för att blockera sårbarheten kan du inaktivera TLS-stöd eller lägga till
ACL-avsnittet "acl_smtp_mail":
deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Källa: opennet.ru