Te whakaraerae i te OpenSMTPD e taea ai te mahi waehere mamao me nga mana pakiaka

I roto i te tūmau mēra i whakawhanakehia e te kaupapa OpenBSD TuwheraSMTPD kua tautuhia whakaraeraetanga tino nui (CVE-2020-7247), ka taea e koe te whakahaere i nga whakahau anga i runga i te tūmau me nga mana kaiwhakamahi pakiaka. I kitea te whakaraeraetanga i te wa o te arotake ano i whakahaeretia e Qualys Security (o mua OpenSMTPD arotake. i mahia i te tau 2015, a kua tae mai te whakaraeraetanga hou mai i Mei 2018). Raruraru whakakorea i roto i te tuku OpenSMTPD 6.6.2. E taunaki ana nga kaiwhakamahi katoa ki te whakauru tonu i te whakahou (mo OpenBSD, ka taea te whakauru i te papaki ma te syspatch).

E rua nga whiringa whakaeke e whakaarohia ana. Ko te waahanga tuatahi ka mahi i roto i te whirihoranga OpenSMTPD taunoa (te whakaae ki nga tono mai i te localhost anake) ka taea e koe te whakamahi i te raru o te rohe, ka taea e te kaiwhaiwhai te uru atu ki te atanga whatunga rohe (loopback) i runga i te tūmau (hei tauira, i runga i nga punaha manaaki) . Ka puta te whiringa tuarua ina whirihorahia a OpenSMTPD ki te whiwhi tono whatunga o waho (he tūmau mēra e whakaae ana ki te mēra tuatoru). Kua whakaritea e nga Kairangahau tetahi tauira o te mahi e mahi angitu ana me te putanga OpenSMTPD kei roto i te OpenBSD 6.6 me tetahi putanga kawe mo etahi atu punaha whakahaere (i whakahaerehia i roto i te Whakamatau Debian).

Ko te raruraru i puta mai i te hapa i roto i te mahi smtp_mailaddr(), e kiia ana kia tirohia te tika o nga uara i roto i nga mara "MAIL FROM" me "RCPT TO" e tautuhi ana i te kaituku / kaiwhiwhi ka tukuna i te wa o te hononga. me te tūmau mēra. Hei tirotiro i te waahanga o te wahitau imeera ka puta i mua i te tohu "@", ka kiia te mahi smtp_mailaddr()
valid_localpart(), e whakaae ana (MAILADDR_ALLOWED) nga pūāhua "!#$%&'*/?^`{|}~+-=_", e hiahiatia ana e RFC 5322.

I tenei take, ka mahia te mawhiti tika o te aho i roto i te mahi mda_expand_token(), e whakakapi ana i nga tohu "!#$%&’*?`{|}~” (MAILADDR_ESCAPE). I muri mai, ka whakamahia te raina kua whakaritea i roto i te mda_expand_token() ina waea ana ki te kaihoko tuku (MDA) ma te whakamahi i te whakahau 'execle("/bin/sh", "/bin/sh", "-c", mda_command,...' . Ki te whakatakoto reta ki te mbox ma /bin/sh, ka whakarewahia te rarangi "/usr/libexec/mail.local -f %%{mbox.from} %%{user.username}", kei reira te uara "% {mbox.from}” kei roto nga raraunga i mawhiti mai i te tawhā "MAIL FROM".

Ko te ngako o te whakaraeraetanga ko te smtp_mailaddr() he hapa arorau, na te mea, mena ka tukuna he rohe kore ki te imeera, ka whakahokia mai e te mahi he waehere whakaū angitu, ahakoa ko te waahanga o te wahitau i mua i te "@" kei roto nga tohu muhu . I tua atu, i te wa e whakareri ana i te aho, karekau te mahi mda_expand_token() e mawhiti i nga momo momo anga motuhake, engari ko nga tohu motuhake anake e whakaaetia ana i roto i te wahitau imeera. No reira, ki te whakahaere i to whakahau, he nui ki te whakamahi i te tohu ";" i te waahanga o te imeera. me te mokowhiti, kaore i whakauruhia ki roto i te huinga MAILADDR_ESCAPE, kaore ano kia mawhiti. Hei tauira:

$nc 127.0.0.1 25

HELO ahorangi.falken
MERE MAI:
RCPT KI:
RARAUNGA
.
whakamutu

I muri i tenei wahanga, OpenSMTPD, ka tukuna ki te mbox, ka whakarewahia te whakahau ma te anga

/usr/libexec/mail.local -f ;moe 66; putake

I te wa ano, he iti noa nga whakaeke whakaeke na te mea kaore e taea e te waahi o te waahi noho te neke ake i te 64 nga tohu, ka whakakapihia nga tohu motuhake '$' me te '|' ki te ":" ka mawhiti. Hei karo i tenei herenga, ka whakamahia e matou te meka ka tukuna te tinana o te reta i muri i te rere /usr/libexec/mail.local ma te awa whakauru, ara. Ma te raweke i te wahitau, ka taea noa e koe te whakarewa i te kaiwhakamaori whakahau sh me te whakamahi i te tinana o te reta hei huinga tohutohu. I te mea ka tohuhia nga pane SMTP ratonga i te timatanga o te reta, ka whakaarohia kia whakamahia te tono panui i roto i te kapiti hei peke. He penei te ahua o te mahi mahi:

$nc 192.168.56.143 25

HELO ahorangi.falken
MERE MAI:
RCPT KI:<[email tiakina]>
RARAUNGA
#0
#1
...
#d
mo i i roto i te W O P R; mahi
echo -n "($i) " && id || pakaru
kua oti > /root/x."`id -u`.""$$"
.
whakamutu

Source: opennet.ru

Tāpiri i te kōrero