Nā vulnerabilities i OpenSMTPD e ʻae i ke aʻa mamao a kūloko

Hui Qualys hōʻike ʻia kekahi pilikia koʻikoʻi mamao (CVE-2020-8794) ma ke kikowaena leka uila OpenSMTPD, hoʻomohala ʻia e ka papahana OpenBSD. E like me ka mea i ʻike ʻia ma ka hopena o Ianuali palupalu, he pilikia hou e hiki ai ke hoʻokō mamao i nā kauoha shell arbitrary ma kahi kikowaena me nā kuleana mea hoʻohana kumu. Pilikia hoʻopau ʻia ma ka hihia OpenSMTPD 6.6.4p1.

Hoʻokumu ʻia ka pilikia ma muli o kahi pahu i loko o ke code e hāʻawi ana i ka leka uila i ke kikowaena leka uila mamao (ʻaʻole i loko o ke code e mālama ai i nā pilina komo). Hiki ke hoʻouka ʻia ma ka ʻaoʻao o ka mea kūʻai aku a ma ka ʻaoʻao kikowaena. Ma ka ʻaoʻao o ka mea kūʻai aku, hiki ke hoʻouka ʻia i ka hoʻonohonoho paʻamau o OpenSMTPD, kahi e ʻae ai ʻo OpenSMTPD i nā noi wale nō ma ke kikowaena pūnaewele kūloko (localhost) a hoʻouna i nā leka uila i nā kikowaena waho. No ka hoʻohana ʻana i ka nāwaliwali, lawa ia, i ka wā o ka hāʻawi ʻana i kahi leka, ua hoʻokumu ʻo OpenSMTPD i kahi hālāwai me kahi kikowaena leka uila i hoʻomalu ʻia e ka mea hoʻouka, a i ʻole hiki i ka mea hoʻouka ke hoʻopili i ka pilina o ka mea kūʻai aku (MITM a i ʻole redirection i ka wā o ka hoʻouka ʻana ma o DNS a i ʻole BGP. ).

No ka hoʻouka kaua ʻaoʻao, pono e hoʻonohonoho ʻia ʻo OpenSMTPD no ka loaʻa ʻana o nā noi pūnaewele waho mai nā kikowaena leka uila ʻē aʻe a lawelawe paha i nā lawelawe ʻaoʻao ʻekolu e hiki ai iā ʻoe ke hoʻouna i kahi noi i kahi leka uila ʻole (e laʻa, nā palapala hōʻoia ʻōlelo ma nā pūnaewele). No ka laʻana, hiki i ka mea hoʻouka ke hoʻopili i ka server OpenSMTPD a hoʻouna i kahi leka pololei (i kahi mea hoʻohana ʻole), e alakaʻi i kahi pane e hoʻouna ana i kahi leka me kahi code error (bounce) i ke kikowaena o ka mea hoʻouka. Hiki i ka mea hoʻouka ke hoʻohana i ka nāwaliwali ke hoʻopili ʻo OpenSMTPD e hāʻawi i kahi leka hoʻomaopopo i ke kikowaena o ka mea hoʻouka. Hoʻokomo ʻia nā kauoha shell i ka wā o ka hoʻouka ʻana i kahi faila i hoʻokō ʻia me nā kuleana kumu i ka wā e hoʻomaka hou ai ka OpenSMTPD, no laila pono e kali ka mea hoʻouka iā OpenSMTPD e hoʻomaka hou a hoʻomaka i kahi ulia o OpenSMTPD e hoʻopau i ka hoʻouka ʻana.

Aia ka pilikia ma ka hana mta_io() i ke code no ka hoʻopaʻa ʻana i ka pane multiline i hoʻihoʻi ʻia e ka server mamao ma hope o ka hoʻokumu ʻia ʻana o kahi pilina (no ka laʻana, "250-ENHANCEDSTATUSCODES" a me "250 HELP"). Hoʻohelu ʻo OpenSMTPD i ka laina mua he helu helu ʻekolu a me kahi kikokikona i hoʻokaʻawale ʻia e kahi ʻano "-", a ʻo ka laina ʻelua he helu helu ʻekolu a me kahi kikokikona i hoʻokaʻawale ʻia e kahi ākea. Inā ʻaʻole hahai ʻia kahi helu helu ʻekolu e kahi hakahaka a me nā kikokikona ma ka laina ʻelua, ua hoʻonohonoho ʻia ka mea kuhikuhi e wehewehe i ke kikokikona i ka byte ma hope o ke ʻano '\0' a ua hoʻāʻo ʻia e kope i ka ʻikepili ma hope o ka hopena. o ka laina i loko o ka pale.

Ma ke noi o ka papahana OpenBSD, ua hoʻopaneʻe ʻia ka paʻi ʻana o nā kikoʻī e pili ana i ka hoʻohana ʻana i ka nāwaliwali a hiki i ka lā 26 Pepeluali e hiki ai i nā mea hoʻohana ke hoʻonui i kā lākou mau ʻōnaehana. Aia ka pilikia ma ka codebase mai Dekemaba 2015, akā hiki ke hoʻohana ʻia ma mua o ka hoʻokō ʻana i nā code me nā kuleana kumu mai Mei 2018. Ua hoʻomākaukau nā mea noiʻi i kahi prototype hana o ka hoʻohana, i hoʻāʻo maikaʻi ʻia ma OpenSMTPD kūkulu no OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (hōʻoia) a me Fedora 31.

Ma OpenSMTPD pū kekahi ʻike ʻia ʻO kekahi mea nāwaliwali (CVE-2020-8793) e hiki ai i kahi mea hoʻohana kūloko ke heluhelu i ka laina mua o kekahi faila ma ka ʻōnaehana. No ka laʻana, hiki iā ʻoe ke heluhelu i ka laina mua o /etc/master.passwd, aia i loko o ka hash password a ka mea hoʻohana kumu. Hiki iā ʻoe ke heluhelu i nā kikoʻī holoʻokoʻa o kahi faila i loaʻa e kekahi mea hoʻohana inā loaʻa kēia faila ma ka ʻōnaehana waihona like me ka /var/spool/smtpd/ directory. ʻAʻole hiki ke hoʻohana ʻia ka pilikia ma nā māhele Linux he nui kahi i hoʻonohonoho ʻia ai ka waiwai o /proc/sys/fs/protected_hardlinks i 1.

ʻO ka pilikia ka hopena o ka hoʻopau ʻole ʻana nā pilikia, i hoʻopuka ʻia i ka wā o ka loiloi i mālama ʻia e Qualys ma 2015. Hiki i ka mea hoʻouka ke hoʻokō i kāna code me nā kuleana o ka hui "_smtpq" ma ka hoʻonohonoho ʻana i ka "PATH =." variable. a kau i kahi palapala i kapa ʻia makemap i ka papa kuhikuhi o kēia manawa (e holo ana ka pono smtpctl makemap me ka ʻole o ka wehewehe ʻana i ke ala). Ma ka loaʻa ʻana o ke komo ʻana i ka hui "_smtpq", hiki i ka mea hoʻouka ke hana i kahi kūlana heihei (hana i kahi faila nui i ka papa kuhikuhi waho a hoʻouna i kahi hōʻailona SIGSTOP) a, ma mua o ka pau ʻana o ka hana, e hoʻololi i ka faila ma ka papa kuhikuhi offline me kahi paʻakikī. symlink e kuhikuhi ana i ka waihona i manaʻo ʻia nona nā mea e pono ke heluhelu ʻia.

He mea koʻikoʻi ia ma Fedora 31 hiki i ka nāwaliwali ke loaʻa koke iā ʻoe nā pono o ka pūʻulu kumu, no ka mea ua hoʻolako ʻia ke kaʻina smtpctl me ka hae kumu setgid, ma kahi o ka hae setgid smtpq. Ma ka loaʻa ʻana o ke komo ʻana i ka pūʻulu kumu, hiki iā ʻoe ke kākau i nā mea o /var/lib/sss/mc/passwd a loaʻa i ke aʻa piha i ka ʻōnaehana.

Source: opennet.ru

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