Nā mea noiʻi palekana mai Qualys
Hoʻokumu ʻia ka pilikia e ka integer overflow i ka hana stralloc_readyplus(), hiki ke hana i ka wā e hoʻoili ai i kahi leka nui loa. Pono ka hana i kahi ʻōnaehana 64-bit me ka ʻoi aku o 4GB o ka hoʻomanaʻo virtual. I ka wā i kālailai mua ʻia ai ka vulnerability i ka makahiki 2005, ua hoʻopaʻapaʻa ʻo Daniel J. Bernstein i ka manaʻo i loko o ke code ʻo ka nui o ka array i hoʻokaʻawale ʻia i loko o ka waiwai 32-bit ma muli o ka mea ʻaʻohe mea e hāʻawi i nā gigabytes o ka hoʻomanaʻo i kēlā me kēia kaʻina. I nā makahiki he 15 i hala iho nei, ua hoʻololi nā ʻōnaehana 64-bit ma nā kikowaena i nā ʻōnaehana 32-bit, a ua piʻi nui ka nui o ka hoʻomanaʻo i hoʻolako ʻia a me ka bandwidth pūnaewele.
Ua mālama nā mea mālama pūʻolo qmail i ka memo a Bernstein a kaupalena i ka hoʻomanaʻo i loaʻa i ka wā e hoʻomaka ai i ke kaʻina qmail-smtpd (no ka laʻana, ma Debian 10 ua hoʻonohonoho ʻia ka palena i 7MB). Akā ua ʻike nā mea ʻenekinia mai Qualys ʻaʻole lawa kēia a, ma kahi o qmail-smtpd, hiki ke hoʻokō ʻia kahi hoʻouka mamao ma ke kaʻina hana qmail-local, i waiho ʻole ʻia i nā pūʻulu hoʻāʻo a pau. Ma ke ʻano he hōʻoia, ua hoʻomākaukau ʻia kahi prototype hoʻohana i kūpono no ka hoʻouka ʻana i ka pā Debian me qmail i ka hoʻonohonoho paʻamau.
No ka hoʻonohonoho ʻana i ka hoʻokō code mamao i ka wā o ka hoʻouka ʻana, pono ke kikowaena i ka 4GB o ka hakahaka manuahi a me 8GB o RAM.
Hiki iā ʻoe ke hoʻokō i nā kauoha shell me nā kuleana o kēlā me kēia mea hoʻohana i ka ʻōnaehana, koe wale nō nā mea hoʻohana aʻa a me nā ʻōnaehana ʻaʻole i loaʻa kā lākou subdirectory ma ka papa kuhikuhi "/ home" (ua hoʻomaka ʻia ke kaʻina hana qmail-local me nā kuleana. o ka mea hoʻohana kūloko kahi i lawe ʻia ai ka lawe ʻana).
Hoʻokō ʻia ka hoʻouka ʻana
ma o ka hoʻouna ʻana i ka leka uila nui loa, me nā laina poʻomanaʻo, me ke ana ʻana ma kahi o 4GB a me 576MB. ʻO ke kaʻina ʻana o ia string i ka qmail-local ka hopena i ka integer overflow ke hoʻāʻo nei e hāʻawi i kahi leka i ka mea hoʻohana kūloko. A laila alakaʻi ka integer overflow i ka buffer overflow i ka wā e kope ai i ka ʻikepili a me ka hiki ke kākau i nā ʻaoʻao hoʻomanaʻo me ka libc code. Ma ka hoʻololi ʻana i ka hoʻolālā o ka ʻikepili i hoʻouna ʻia, hiki nō ke kākau hou i ka helu o ka hana "open()", e hoʻololi iā ia me ka helu o ka hana "system()".
A laila, i ke kaʻina o ke kāhea ʻana i qmesearch () ma qmail-local, ua wehe ʻia ka faila ".qmail-extension" ma o ka hana open (), e alakaʻi i ka hoʻokō maoli ʻana o ka hana.
ʻōnaehana (".qmail-extension"). Akā, ʻoiai ua hana ʻia ka ʻāpana "extension" o ka faila ma muli o ka helu o ka mea i loaʻa (no ka laʻana, "localuser-extension@localdomain"), hiki i nā mea hoʻouka ke hoʻonohonoho i ke kauoha e hoʻouna ʻia e holo ma ke kuhikuhi ʻana i ka mea hoʻohana "localuser-; kauoha. ;@localdomain" ma ke ʻano he mea i loaʻa ka leka.
I ka wā o ka nānā ʻana i ke code, ua ʻike ʻia ʻelua mau mea palupalu i ka patch qmail-verify hou, ʻo ia kahi ʻāpana o ka pūʻolo no Debian. ʻO ka nāwaliwali mua (
No ka hoʻoponopono ʻana i ka pilikia, ua ʻōlelo ʻo Bernstein i ka holo ʻana i nā kaʻina qmail me ka palena holoʻokoʻa o ka hoʻomanaʻo i loaʻa ("softlimit -m12345678"), a laila ua pāpā ʻia ka pilikia. Ma ke ʻano he ala ʻē aʻe o ka pale ʻana, ua ʻōlelo pū ʻia ka palena ʻana i ka nui o ka memo i hoʻoponopono ʻia ma o ka faila "control/databytes" (ma ka paʻamau ʻaʻole ia i hana ʻia me nā hoʻonohonoho paʻamau qmail noho palupalu). Eia kekahi, ʻaʻole mālama ʻo "control/databytes" i nā hoʻouka kūloko mai nā mea hoʻohana ʻōnaehana, no ka mea, ʻo ka palena wale nō e mālama ʻia e qmail-smtpd.
Pili ka pilikia i ka pūʻolo
Source: opennet.ru