Leochaileacht i Python agus uimhreacha codánacha neamhbhailíochtaithe i ctypes á láimhseáil

Tá eisiúintí ceartaitheacha de theanga ríomhchlárúcháin Python 3.7.10 agus 3.6.13 ar fáil, rud a shocraíonn leochaileacht (CVE-2021-3177) a d’fhéadfadh feidhmiú cód a bheith mar thoradh air agus uimhreacha snámhphointe neamhbhailíochtaithe á bpróiseáil i láimhseálaithe a ghlaonn feidhmeanna C ag baint úsáide as an meicníocht ctypes. . Bíonn tionchar ag an bhfadhb freisin ar bhrainsí Python 3.8 agus 3.9, ach tá nuashonruithe dóibh fós i stádas iarrthóra scaoileadh (scaoileadh sceidealta le haghaidh Márta 1).

Is é is cúis leis an bhfadhb ná ró-sreabhadh maolánach san fheidhm ctypes PyCArg_repr(), a tharlaíonn de bharr úsáid neamhshábháilte sprintf. Go háirithe, chun toradh an chlaochlaithe a phróiseáil 'sprintf(maolán," ", self->tag, self->value.b)' leithdháilte maolán statach de 256 beart ("maolán char[256]"), agus d'fhéadfadh an toradh dul thar an luach seo. Chun leochaileacht na n-iarratas a sheiceáil don leochaileacht, is féidir leat triail a bhaint as an luach “1e300” a rith, agus, nuair a phróiseálfar é leis an modh c_double.from_param, beidh tuairteála mar thoradh air, ós rud é go bhfuil 308 carachtar san uimhir mar thoradh air agus nach luíonn sé le Maolán 256-beart. Sampla de chód fadhbach: ctypes iompórtála; x = ctypes.c_double.from_param(1e300); ionad(x)

Tá an fhadhb fós gan réiteach i Debian, Ubuntu agus FreeBSD, ach tá sé socraithe cheana féin in Arch Linux, Fedora, SUSE. In RHEL, ní tharlaíonn an leochaileacht mar gheall ar chóimeáil pacáiste i mód FORTIFY_SOURCE, a chuireann bac ar ró-shreabhadh maoláin dá leithéid i bhfeidhmeanna teaghrán.

Foinse: oscailtenet.ru

Add a comment