Kusagadzikana muPython kana uchibata zvisina kubvumidzwa nhamba dzezvikamu mu ctypes

Kururamisa kuburitswa kwePython programming mutauro 3.7.10 uye 3.6.13 zviripo, izvo zvinogadzirisa kusagadzikana (CVE-2021-3177) izvo zvinogona kutungamira mukutevedzwa kwekodhi kana uchigadzirisa unvalidated inoyangarara nhamba nhamba muvabati vanodaidza C mabasa vachishandisa ctypes mashandiro. . Dambudziko rinobatawo matavi ePython 3.8 uye 3.9, asi zvigadziriso kwavari zvichiri mukuburitswa kwemumiriri (kuburitswa kwakarongwa munaKurume 1).

Dambudziko rinokonzerwa nekufashukira kwebuffer mu ctypes function PyCArg_repr(), inoitika nekuda kwekushandisa zvisina kuchengeteka kwe sprintf. Kunyanya, kugadzirisa mhedzisiro yeshanduko 'sprintf(buffer," ", self->tag, self->value.b)' yakapa static buffer ye256 bytes ("char buffer[256]"), nepo mhedzisiro yacho ichigona kudarika kukosha uku. Kuti utarise kusagadzikana kwezvikumbiro kune njodzi, unogona kuedza kupfuudza kukosha kwe "1e300", iyo, kana yagadziriswa ne c_double.from_param nzira, inotungamira mukupunzika, sezvo iyo inobuda nhamba ine 308 mavara uye isingakwane mu. 256-byte buffer. Muenzaniso wekodhi inonetsa: pinza ctypes; x = ctypes.c_double.from_param(1e300); repr(x)

Dambudziko rinoramba risina kugadziriswa muDebian, Ubuntu uye FreeBSD, asi rakatogadziriswa muArch Linux, Fedora, SUSE. MuRHEL, kusazvibata hakuitike nekuda kwekusangana kwepakeji muFORTIFY_SOURCE modhi, iyo inovharira buffer kupfachuka mumabasa etambo.

Source: opennet.ru

Voeg