праблема
Код, які выклікае string_interpret_escape(), вылучае буфер пад сцёку, кіруючыся фактычным памерам, і выстаўлены паказальнік апыняецца ў вобласці па-за межамі буфера. Адпаведна, пры спробе апрацоўкі ўваходнага радка ўзнікае сітуацыя чытання дадзеных з вобласці па-за межамі вылучанага буфера, а спроба запісу разэкранаванага радка можа прывесці да запісу за межы буфера.
У канфігурацыі па змаўчанні ўразлівасць можа быць эксплуатаваная праз перадачу адмыслова аформленых дадзеных у SNI пры ўсталёўцы абароненага злучэння да сервера. Праблема таксама можа быць эксаплуатаваная праз мадыфікацыю значэнняў peerdn у канфігурацыях, настроеных для аўтэнтыфікацыі па сертыфікаце кліента, або пры імпарце сертыфікатаў. Атака праз SNI і peerdn магчыма пачынаючы з выпуску
Для нападу праз SNI падрыхтаваны прататып эксплоіта, які працуе на архітэктурах i386 і amd64 у Linux-сістэмах з Glibc. У эксплоіце выкарыстоўваецца накладанне дадзеных на вобласць кучы, якое прыводзіць да перазапісу памяці, у якой захоўваецца імя файла лога. Імя файла замяняецца на "/../../../../../../../../etc/passwd". Далей перазапісваецца зменная з адрасам адпраўніка, які першым захоўваецца ў лог, што дазваляе дадаць новага карыстача ў сістэму.
Абнаўленні пакетаў з ухіленнем уразлівасці выпушчана дыстрыбутывамі
У якасці абыходнага шляху для блакавання ўразлівасці можна адключыць падтрымку TLS ці дадаць у
секцыю ACL "acl_smtp_mail":
deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Крыніца: opennet.ru