So-leòntachd ann am Python nuair a thathar a’ làimhseachadh àireamhan bloighteach neo-dhearbhte ann an ctypes

Tha fiosan ceartachaidh de chànan prògramadh Python 3.7.10 agus 3.6.13 rim faighinn, a shocraicheas so-leòntachd (CVE-2021-3177) a dh’ fhaodadh leantainn gu coileanadh còd nuair a bhios iad a ’giullachd àireamhan puing-fleòdraidh neo-dhearbhte ann an luchd-làimhseachaidh a bhios a’ gairm gnìomhan C a ’cleachdadh an uidheamachd ctypes . Bidh an duilgheadas cuideachd a’ toirt buaidh air meuran Python 3.8 agus 3.9, ach tha ùrachaidhean dhaibh fhathast ann an inbhe tagraiche fuasglaidh (sgaoileadh clàraichte airson Màrt 1).

Tha an duilgheadas air adhbhrachadh le tar-shruth bufair ann an gnìomh ctypes PyCArg_repr (), a tha a’ tachairt air sgàth cleachdadh mì-shàbhailte de sprintf. Gu sònraichte, gus toradh an cruth-atharrachaidh 'sprintf (bufair," ", self->tag, self->value.b)' air bufair statach de 256 byte a thoirt seachad ("bufair char[256]"), fhad 's a dh' fhaodadh an toradh a dhol thairis air an luach seo. Gus sgrùdadh a dhèanamh air cho cugallach ‘s a tha tagraidhean a thaobh so-leòntachd, faodaidh tu feuchainn ris an luach“ 1e300 ”a thoirt seachad, a thig, nuair a thèid a phròiseasadh leis an dòigh c_double.from_param, gu tubaist, leis gu bheil 308 caractar anns an àireamh a thig às agus nach eil e a’ freagairt air. Bufair 256-byte. Eisimpleir de chòd trioblaideach: in-mhalairt ctypes; x = ctypes.c_double.from_param(1e300); riochd(x)

Tha an duilgheadas fhathast gun fhuasgladh ann an Debian, Ubuntu agus FreeBSD, ach chaidh a shocrachadh mu thràth ann an Arch Linux, Fedora, SUSE. Ann an RHEL, chan eil an so-leòntachd a’ tachairt mar thoradh air co-chruinneachadh pacaid ann am modh FORTIFY_SOURCE, a bhios a’ bacadh a leithid de thar-shruthan bufair ann an gnìomhan sreang.

Source: fosgailtenet.ru

Cuir beachd ann