ʻO ka Vulnerability i Python e hiki ai ke kāhea ʻia nā kauoha ʻōnaehana mai nā palapala kaʻawale

Ua paʻi ʻia kahi ala e kaʻawale ai i nā ʻōnaehana hoʻokō code i hoʻokaʻawale ʻia ma Python, e pili ana i ka hoʻohana ʻana i kahi pōpoki lōʻihi i ʻike ʻia ma Python 2.7, ua ʻike ʻia i ka makahiki 2012 a ʻaʻole i hoʻoponopono ʻia ma Python 3. ʻAe ka bug i ka hoʻohana ʻana i nā loulou kūikawā. Python code e hoʻomaka i ke komo ʻana i ka hoʻomanaʻo i hoʻokuʻu ʻia (Use-After-Free) ma Python. I ka hoʻomaka ʻana, ua manaʻo ʻia ʻaʻole i hoʻoweliweli ʻia ka hewa a i nā hihia kakaikahi wale nō, i hana ʻia i hana ʻia, hiki ke alakaʻi i kahi hoʻopau ʻokoʻa o ka palapala.

Ua lilo ka mea noiʻi palekana ma lalo o ka pseudonym kn32 i ka pilikia a ua hoʻomākaukau i kahi hana hana e hiki ai ke kāhea i kekahi kauoha ʻōnaehana me ka loaʻa ʻole o ke komo pololei i nā ʻano like os.system. Hoʻokomo ʻia ka hoʻohana ma ka Python maʻemaʻe a hana ʻole me ka lawe ʻole ʻana i nā hale waihona puke waho a me ka ʻole o ka hoʻokomo ʻana i ka mea hoʻokele "code.__new__". No nā makau, ʻo “builtin.__id__” wale nō i hoʻohana ʻia, ʻaʻole i pāpā ʻia. Ma ka ʻaoʻao kūpono, hiki ke hoʻohana ʻia ke code i manaʻo ʻia e kāpae i nā mīkini kaʻawale i nā lawelawe like ʻole a me nā kaiapuni (e like me ka laʻana, i nā wahi hoʻonaʻauao, nā pūpū pūnaewele, nā mea hana i kūkulu ʻia, a me nā mea ʻē aʻe), e ʻae ai i ka hoʻokō ʻana i ka code Python, akā e kaupalena i ka. nā kelepona i loaʻa a ʻaʻole ʻae i nā ala kelepona e like me os.system.

ʻO ke code i manaʻo ʻia he analogue o ka os.system call, e hana ana ma ka hoʻohana ʻana i kahi nāwaliwali ma CPython. Hoʻohana ka hoʻohana me nā mana āpau o Python 3 ma nā ʻōnaehana me ka hoʻolālā x86-64 a hōʻike i ka hana paʻa ma Ubuntu 22.04, ʻoiai ke hoʻohana ʻia nā ʻano palekana PIE, RELRO a me CET. Ke iho nei ka hana i ka loaʻa ʻana o ka ʻike mai ka code Python e pili ana i ka helu o kekahi o nā hana i ka code CPython executable. Ma muli o kēia helu helu, helu ʻia ka helu kumu o CPython i ka hoʻomanaʻo a me ka helu o ka ʻōnaehana () hana ma ka libc i hoʻouka ʻia i ka hoʻomanaʻo. I ka hopena, hoʻomaka ʻia kahi hoʻololi pololei i kahi helu ʻōnaehana kikoʻī me ka hoʻololi ʻana o ka pointer o ka hoʻopaʻapaʻa mua i ka laina "/ bin / sh".

ʻO ka Vulnerability i Python e hiki ai ke kāhea ʻia nā kauoha ʻōnaehana mai nā palapala kaʻawale


Source: opennet.ru

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