Vilnerabilite nan Python lè w ap okipe nimewo fraksyon ki pa valide nan ctypes

Version korektif langaj pwogramasyon Python 3.7.10 ak 3.6.13 ki disponib, ki ranje yon vilnerabilite (CVE-2021-3177) ki ta ka mennen nan ekzekisyon kòd lè yo trete nimewo k ap flote ki pa valide nan moun kap okipe fonksyon C lè l sèvi avèk mekanis ctypes. . Pwoblèm nan tou afekte branch Python 3.8 ak 3.9, men mizajou pou yo toujou nan sitiyasyon kandida lage (lage pwograme pou 1ye mas).

Pwoblèm nan koze pa yon debòde tanpon nan fonksyon ctypes PyCArg_repr(), ki rive akòz itilizasyon danjere sprintf. An patikilye, pou trete rezilta transfòmasyon 'sprintf(tapon, " ", self->tag, self->value.b)' te resevwa yon tanpon estatik 256 bytes ("char tanpon[256]"), pandan ke rezilta a te kapab depase valè sa a. Pou tcheke vilnerabilite aplikasyon yo nan vilnerabilite a, ou ka eseye pase valè "1e300", ki, lè trete pa metòd la c_double.from_param, ap mennen nan yon aksidan, paske nimewo ki kapab lakòz gen 308 karaktè epi li pa anfòm nan yon. 256-byte tanpon. Egzanp kòd pwoblèm: enpòte ctypes; x = ctypes.c_double.from_param(1e300); repr(x)

Pwoblèm nan rete san pwoblèm nan Debian, Ubuntu ak FreeBSD, men li te deja fiks nan Arch Linux, Fedora, SUSE. Nan RHEL, vilnerabilite a pa rive akòz asanble pake nan mòd FORTIFY_SOURCE, ki bloke debòde tanpon sa yo nan fonksyon fisèl.

Sous: opennet.ru

Add nouvo kòmantè