Hōʻike ʻia nā kikoʻī o ka nāwaliwali koʻikoʻi ma Exim

paʻi ʻia hoʻokuʻu hoʻoponopono Exim 4.92.2 me ka hoʻopau ʻana i nā mea koʻikoʻi nawaliwali (CVE-2019-15846), ka mea ma ka hoʻonohonoho paʻamau e hiki ke alakaʻi i ka hoʻokō code mamao e ka mea hoʻouka me nā pono kumu. Hōʻike wale ʻia ka pilikia ke hoʻohana ʻia ke kākoʻo TLS a hoʻohana ʻia e ka hāʻawi ʻana i kahi palapala mea kūʻai aku i hoʻolālā kūikawā a i ʻole ka waiwai i hoʻololi ʻia i SNI. Pilikia ʻike ʻia na Qualys.

pilikia i kēia manawa i ka mea lawelawe no ka pakele ʻana i nā huaʻōlelo kūikawā i ke kaula (string_interpret_escape() mai string.c) a ma muli o ke ʻano '\' ma ka hope o ke kaula i unuhi ʻia ma mua o ke ʻano null ('\0') a pakele. I ka wā e pakele ai, mālama ʻia ke kaʻina '\' a me ke code hope-null e like me ke ʻano hoʻokahi a hoʻoneʻe ʻia ke kuhikuhi i ka ʻikepili ma waho o ka laina, i mālama ʻia ma ke ʻano he hoʻomau o ka laina.

Hoʻokaʻawale ka code calling string_interpret_escape() i kahi pale no ka hoʻoheheʻe ʻana ma muli o ka nui maoli, a pau ka mea kuhikuhi i hōʻike ʻia ma kahi wahi ma waho o nā palena o ka buffer. No laila, i ka wā e hoʻāʻo ai e hoʻoponopono i kahi kaula hoʻokomo, e kū mai kahi kūlana i ka heluhelu ʻana i ka ʻikepili mai kahi wahi ma waho o nā palena o ka buffer i hoʻokaʻawale ʻia, a ʻo ka hoʻāʻo ʻana e kākau i kahi kaula i pakele ʻole hiki ke alakaʻi i ke kākau ʻana ma waho o nā palena o ka pale.

Ma ka hoʻonohonoho paʻamau, hiki ke hoʻohana ʻia ka nāwaliwali ma ka hoʻouna ʻana i nā ʻikepili i hoʻolālā kūikawā ʻia i SNI i ka wā e hoʻokumu ai i kahi pilina paʻa i ke kikowaena. Hiki ke hoʻohana ʻia ka pilikia ma ka hoʻololi ʻana i nā waiwai perdn i nā hoʻonohonoho i hoʻonohonoho ʻia no ka hōʻoia hōʻoia o ka mea kūʻai aku a i ka wā e lawe mai ana i nā palapala hōʻoia. Hiki ke hoʻouka ʻia ma o SNI a me nā perdn mai ka hoʻokuʻu ʻana Exim 4.80, kahi i hoʻohana ʻia ai ka hana string_unprinting() no ka wehe ʻana i ka ʻike peern a me SNI.

Ua hoʻomākaukau ʻia kahi prototype exploit no ka hoʻouka ʻana ma o SNI, e holo ana ma ka i386 a me amd64 architectures ma nā ʻōnaehana Linux me Glibc. Hoʻohana ka hoʻohana ʻana i ka ʻikepili i uhi ʻia ma ka ʻāpana heap, e hopena i ke kākau ʻana i ka hoʻomanaʻo i mālama ʻia ai ka inoa faila log. Ua pani ʻia ka inoa faila me "/../../../../../../../../etc/passwd". ʻO ka mea aʻe, hoʻololi ʻia ka helu me ka helu o ka mea hoʻouna, i mālama mua ʻia i ka log, e hiki ai iā ʻoe ke hoʻohui i kahi mea hoʻohana hou i ka ʻōnaehana.

ʻO nā hōʻano hou me nā hoʻoponopono nāwaliwali i hoʻokuʻu ʻia e nā māhele Debian, Ubuntu, ʻO Fedora, SUSE/openSUSE и FreeBSD. RHEL a me CentOS pilikia hiki ole, no ka mea ʻaʻole i hoʻokomo ʻia ʻo Exim i kā lākou waihona waihona maʻamau (ma PUUMANA update ua hoʻokumu ʻia, akā i kēia manawa ʻaʻole i kau ʻia i kahi waihona lehulehu). Ma ka code Exim ua hoʻopaʻa ʻia ka pilikia me kahi laina hoʻokahi kāʻei, ka mea e hoʻopau i ka hopena pakele o ka backslash inā aia ma ka hope o ka laina.

Ma ke ʻano he hana e ālai ai i ka nāwaliwali, hiki iā ʻoe ke hoʻopau i ke kākoʻo TLS a hoʻohui paha
Mahele ACL "acl_smtp_mail":

hōʻole kūlana = ${inā eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
hōʻole kūlana = ${inā eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka