Fa'aletonu i le Python pe a fa'atautaia numera vaevaega le fa'amaonia i ctypes

Fa'asa'oga fa'asa'oga o le Python programming language 3.7.10 ma le 3.6.13 o lo'o avanoa, lea e fa'aleleia ai se fa'aletonu (CVE-2021-3177) e mafai ona ta'ita'ia ai le fa'atinoina o le tulafono pe a fa'agasolo numera fa'a'au'amea e le'o fa'amaonia i tagata e ta'ua galuega C e fa'aaoga ai le ctypes mechanism . O le faʻafitauli e aʻafia ai foʻi le Python 3.8 ma le 3.9 lala, ae o faʻafouga mo i latou o loʻo i ai pea i le tuʻuina atu o sui tauva (faʻasaʻo faʻatulagaina mo Mati 1).

O le faʻafitauli e mafua mai i le faʻafefe o le paʻu i le ctypes function PyCArg_repr(), lea e tupu ona o le le saogalemu o le faʻaogaina o le sprintf. Aemaise lava, ia faʻatautaia le taunuuga o le suiga 'sprintf(buffer, " ", self->tag, self->value.b)' tu'ufa'atasia se fa'amaufa'ailoga o le 256 bytes ("char buffer[256]"), ae o le i'uga e mafai ona sili atu i lenei tau. Ina ia siaki le faʻafitauli o talosaga i le faʻafitauli, e mafai ona e taumafai e pasi le tau "1e300", lea, pe a faʻaogaina e le c_double.from_param metotia, o le a taʻitaʻia ai se faʻalavelave, talu ai o le numera e maua ai 308 mataitusi ma e le fetaui i totonu o se 256-paita pupuni. Fa'ata'ita'iga o fa'ailoga fa'afitauli: fa'aulufale mai ctypes; x = ctypes.c_double.from_param(1e300); sui (x)

O loʻo tumau pea le faʻafitauli i Debian, Ubuntu ma FreeBSD, ae ua uma ona faʻamautuina i Arch Linux, Fedora, SUSE. I totonu o le RHEL, e le tupu le faʻafitauli ona o le faʻapipiʻiina o faʻapotopotoga i le FORTIFY_SOURCE mode, lea e poloka ai le paʻu o loʻo tafe i totonu o manoa.

puna: opennet.ru

Faaopoopo i ai se faamatalaga