probléma
A string_interpret_escape()-t hívó kód a tényleges méret alapján lefoglal egy puffert a lefolyó számára, és a látható mutató a puffer határain kívül eső területre kerül. Ennek megfelelően, amikor megpróbálunk feldolgozni egy bemeneti karakterláncot, olyan helyzet áll elő, amikor a lefoglalt puffer határain kívül eső területről olvasunk adatokat, és egy nem megtisztított karakterlánc írási kísérlete a puffer határain túli íráshoz vezethet.
Az alapértelmezett konfigurációban a biztonsági rést úgy lehet kihasználni, hogy speciálisan erre a célra tervezett adatokat küldenek az SNI-nek, amikor biztonságos kapcsolatot létesítenek a szerverrel. A probléma kihasználható a peerdn értékek módosításával is az ügyféltanúsítvány-hitelesítéshez konfigurált konfigurációkban vagy tanúsítványok importálásakor. SNI-n és peerdn-en keresztüli támadás a kiadástól kezdve lehetséges
Az SNI-n keresztüli támadáshoz egy exploit prototípus készült, amely i386 és amd64 architektúrákon fut Glibc-cel rendelkező Linux rendszereken. Az exploit adatfedést használ a kupacterületen, ami felülírja azt a memóriát, amelyben a naplófájl neve van tárolva. A fájlnév helyére "/../../../../../../../../etc/passwd" lép. Ezt követően a feladó címét tartalmazó változó felülírásra kerül, amelyet először a naplóba mentünk, ami lehetővé teszi új felhasználó felvételét a rendszerbe.
Csomagfrissítések a disztribúciók által kiadott sebezhetőségi javításokkal
A biztonsági rés blokkolásának elkerülő megoldásaként letilthatja a TLS-támogatást vagy hozzáadhat
ACL szakasz „acl_smtp_mail”:
deny feltétel = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
deny feltétel = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Forrás: opennet.ru