Maelezo ya athari kubwa katika Exim yamefichuliwa

iliyochapishwa kutolewa kwa marekebisho Mtihani wa 4.92.2 pamoja na uondoaji muhimu udhaifu (CVE-2019-15846), ambayo katika usanidi chaguo-msingi inaweza kusababisha utekelezaji wa msimbo wa mbali na mvamizi aliye na haki za mizizi. Tatizo huonekana tu wakati usaidizi wa TLS umewashwa na kutumiwa vibaya kwa kupitisha cheti cha mteja iliyoundwa mahususi au thamani iliyorekebishwa kwa SNI. Udhaifu kutambuliwa na Qualys.

tatizo sasa kwenye kidhibiti cha kutoroka herufi maalum kwenye kamba (string_interpret_esscape() kutoka kwa string.c) na husababishwa na herufi '\' mwishoni mwa mfuatano kufasiriwa kabla ya herufi batili ('\0') na kuitoroka. Wakati wa kutoroka, mlolongo wa '\' na msimbo wa mwisho wa mstari ufuatao huchukuliwa kama herufi moja na kielekezi kinahamishwa hadi kwenye data nje ya mstari, ambayo inachukuliwa kama mwendelezo wa mstari.

Msimbo wa kupiga simu string_interpret_escape() hutenga bafa kwa mifereji ya maji kulingana na saizi halisi, na kielekezi kilichofichuliwa huishia katika eneo nje ya mipaka ya bafa. Ipasavyo, wakati wa kujaribu kuchakata kamba ya pembejeo, hali hutokea wakati wa kusoma data kutoka eneo nje ya mipaka ya bafa iliyotengwa, na jaribio la kuandika kamba ambayo haijaepukika inaweza kusababisha kuandika zaidi ya mipaka ya bafa.

Katika usanidi chaguo-msingi, athari inaweza kutumiwa vibaya kwa kutuma data iliyoundwa mahususi kwa SNI wakati wa kuanzisha muunganisho salama kwa seva. Suala hili pia linaweza kutumiwa vibaya kwa kurekebisha thamani za rika katika usanidi uliosanidiwa kwa ajili ya uthibitishaji wa cheti cha mteja au wakati wa kuleta vyeti. Shambulio kupitia SNI na peerdn linawezekana kuanzia kutolewa Mtihani wa 4.80, ambapo kipengele cha kukokotoa cha string_unprinting() kilitumika kubandua yaliyomo kwenye peerdn na SNI.

Mfano wa exploit umetayarishwa kwa shambulio kupitia SNI, inayoendeshwa kwenye i386 na usanifu wa amd64 kwenye mifumo ya Linux na Glibc. Matumizi hutumia uwekaji wa data kwenye eneo la lundo, na kusababisha kubatilisha kumbukumbu ambamo jina la faili ya kumbukumbu huhifadhiwa. Jina la faili linabadilishwa na "/../../../../../../../../etc/passwd". Ifuatayo, kutofautisha na anwani ya mtumaji huandikwa tena, ambayo huhifadhiwa kwanza kwenye logi, ambayo inakuwezesha kuongeza mtumiaji mpya kwenye mfumo.

Masasisho ya kifurushi na kurekebishwa kwa athari iliyotolewa na usambazaji Debian, Ubuntu, Fedora, SUSE/openSUSE ΠΈ FreeBSD. Tatizo la RHEL na CentOS si rahisi kuathiriwa, kwa kuwa Exim haijajumuishwa kwenye hazina yao ya kawaida ya kifurushi (in JOTO sasisha tayari kuundwa, lakini kwa sasa haijawekwa kwa hazina ya umma). Katika msimbo wa Exim tatizo linarekebishwa na mjengo mmoja kiraka, ambayo huzima athari ya kutoroka ya backslash ikiwa iko mwisho wa mstari.

Kama suluhisho la kuzuia athari, unaweza kuzima usaidizi wa TLS au kuongeza
Sehemu ya ACL "acl_smtp_mail":

kukataa hali = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
kukataa hali = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Chanzo: opennet.ru

Kuongeza maoni