Athari inayoweza kutumiwa kwa mbali katika seva ya barua ya qmail

Watafiti wa usalama kutoka Qualys ilionyesha nafasi Uendeshaji udhaifu katika seva ya barua ya qmail, maarufu nyuma mnamo 2005 (CVE-2005-1513), lakini ilisalia bila kuchapishwa kwa sababu mwandishi wa qmail alisema kuwa haikuwa ya kweli kuunda unyonyaji wa kufanya kazi ambao unaweza kutumika kushambulia mifumo katika usanidi chaguo-msingi. Qualys aliweza kuandaa matumizi ambayo yanakanusha dhana hii na kumruhusu mtu kuanzisha utekelezaji wa msimbo wa mbali kwenye seva kwa kutuma ujumbe ulioundwa mahususi.

Tatizo linasababishwa na kufurika kwa nambari kamili katika kazi ya stralloc_readyplus(), ambayo inaweza kutokea wakati wa kuchakata ujumbe mkubwa sana. Uendeshaji ulihitaji mfumo wa 64-bit wenye zaidi ya 4GB ya kumbukumbu pepe. Wakati uwezekano wa kuathiriwa ulipochambuliwa mwaka wa 2005, Daniel J. Bernstein alisema kuwa dhana katika msimbo kwamba ukubwa wa safu iliyotengwa daima iko ndani ya thamani ya 32-bit inategemea ukweli kwamba hakuna mtu hutoa gigabytes ya kumbukumbu kwa kila mchakato. Katika kipindi cha miaka 15 iliyopita, mifumo ya 64-bit kwenye seva imebadilisha mifumo ya 32-bit, na kiasi cha kumbukumbu iliyotolewa na bandwidth ya mtandao imeongezeka kwa kasi.

Watunza vifurushi vya qmail walizingatia dokezo la Bernstein na kupunguza kumbukumbu inayopatikana wakati wa kuanza mchakato wa qmail-smtpd (kwa mfano, Debian 10 inaweka kikomo cha 7MB). Lakini wahandisi kutoka Qualys waligundua kuwa hii haitoshi na, pamoja na qmail-smtpd, shambulio la mbali linaweza kufanywa kwenye mchakato wa qmail-ndani, ambao ulibaki bila vikwazo katika vifurushi vyote vilivyojaribiwa. Kama dhibitisho, mfano wa unyonyaji ulitayarishwa, unaofaa kwa kushambulia kifurushi cha Debian na qmail katika usanidi chaguo-msingi.
Ili kupanga utekelezaji wa msimbo wa mbali wakati wa shambulio, seva inahitaji 4GB ya nafasi ya bure ya diski na 8GB ya RAM.
Unyonyaji hukuruhusu kutekeleza amri zozote za ganda na haki za mtumiaji yeyote kwenye mfumo, isipokuwa kwa watumiaji wa mizizi na mfumo ambao hawana saraka yao ndogo kwenye saraka ya "/ nyumbani" (mchakato wa qmail-ndani unazinduliwa na haki. ya mtumiaji wa ndani ambaye utoaji unafanywa).

Shambulio hilo linatekelezwa
kupitia kutuma ujumbe mkubwa sana wa barua, ikijumuisha mistari kadhaa ya vichwa, yenye takriban 4GB na 576MB. Kuchakata mfuatano kama huo katika qmail-local husababisha kufurika kamili wakati wa kujaribu kuwasilisha ujumbe kwa mtumiaji wa karibu. Kujaza nambari kamili kisha husababisha kufurika kwa bafa wakati wa kunakili data na uwezekano wa kubatilisha kurasa za kumbukumbu kwa msimbo wa libc. Kwa kuendesha mpangilio wa data iliyopitishwa, inawezekana pia kuandika upya anwani ya kazi ya "kufungua ()", na kuibadilisha na anwani ya kazi ya "mfumo ()".

Ifuatayo, katika mchakato wa kupiga simu qmesearch() katika qmail-local, faili ".qmail-extension" inafunguliwa kupitia open() kazi, ambayo inaongoza kwa utekelezaji halisi wa kazi.
system(".qmail-extension"). Lakini kwa kuwa sehemu ya faili ya “kiendelezi” inatolewa kulingana na anwani ya mpokeaji (kwa mfano, “localuser-extension@localdomain”), wavamizi wanaweza kupanga ili amri itumike kwa kubainisha mtumiaji “localuser-;command. ;@localdomain” kama mpokeaji wa ujumbe.

Wakati wa uchanganuzi wa msimbo, udhaifu wawili pia ulitambuliwa katika kiraka cha ziada cha uthibitishaji wa qmail, ambacho ni sehemu ya kifurushi cha Debian. Udhaifu wa kwanza (CVE-2020-3811) hukuruhusu kupitisha uthibitishaji wa anwani ya barua pepe, na ya pili (CVE-2020-3812) husababisha kuvuja kwa taarifa za ndani. Hasa, athari ya kwanza hukuruhusu kupita uthibitishaji wa usahihi wa anwani inayotumiwa katika matumizi kutuma amri (uthibitishaji haufanyi kazi kwa anwani zisizo na kikoa, kama vile "localuser-;command;"). Athari ya pili inaweza kutumika kuangalia uwepo wa faili na saraka kwenye mfumo, ikijumuisha zile zinazoweza kufikiwa tu na mzizi (qmail-verify inaendeshwa na haki za mizizi), kupitia simu ya moja kwa moja kwa kidhibiti cha ndani.

Ili kutatua tatizo, Bernstein alipendekeza kuendesha michakato ya qmail yenye kikomo cha jumla cha kumbukumbu inayopatikana ("softlimit -m12345678"), ambapo tatizo limezuiwa. Kama njia mbadala ya ulinzi, kuweka kikomo cha ukubwa wa juu zaidi wa ujumbe uliochakatwa kupitia faili ya "control/databytes" pia imetajwa (kwa chaguo-msingi haijaundwa kwa mipangilio chaguo-msingi, qmail inabaki kuwa hatarini). Kwa kuongeza, "control/databytes" hailindi dhidi ya mashambulizi ya ndani kutoka kwa watumiaji wa mfumo, kwani kikomo kinazingatiwa tu katika qmail-smtpd.

Tatizo huathiri mfuko netqmail, iliyojumuishwa katika hazina za Debian. Seti ya viraka imetayarishwa kwa kifurushi hiki, ikiondoa udhaifu wa zamani kutoka 2005 (kwa kuongeza vikomo vya kumbukumbu ngumu kwa alloc() msimbo wa kazi) na matatizo mapya katika qmail-verify. Tofauti tayari toleo lililosasishwa la kiraka cha uthibitishaji wa qmail. Watengenezaji matawi notqmail walitayarisha viraka vyao wenyewe ili kuzuia shida za zamani, na pia wakaanza kufanya kazi ili kuondoa utiririshaji wote wa nambari kwenye nambari.

Chanzo: opennet.ru

Kuongeza maoni