Janë në dispozicion përmirësime për versionet e gjuhës së programimit Python 3.7.10 dhe 3.6.13, në të cilat është eliminuar një dobësi (CVE-2021-3177), e cila mund të çojë në ekzekutimin e kodit gjatë përpunimit të numrave me presje të lëvizshme të pa verifikuar në menaxhuesit që thërrasin funksione në gjuhën C duke përdorur mekanizmin ctypes. Problemi ndikon gjithashtu në degët Python 3.8 dhe 3.9, por përditësimet për to janë ende në fazën e kandidatëve për lëshim (lëshimi është planifikuar për më 1 mars).
Problemi Ă«shtĂ« shkaktuar nga mbushja e tamponit nĂ« funksionin ctypes PyCArg_repr(), qĂ« ndodh pĂ«r shkak tĂ« pĂ«rdorimit tĂ« pasigurt tĂ« sprintf. NĂ« veçanti, pĂ«r pĂ«rpunimin e rezultatit tĂ« ekzekutimit tĂ« konvertimit âsprintf(buffer, "", self->tag, self->value.b)â ishte caktuar njĂ« buffer statik me madhĂ«si 256 byte ("char buffer[256]"), ndĂ«rsa rezultati mund tĂ« kalojĂ« kĂ«tĂ« vlerĂ«. PĂ«r tĂ« kontrolluar nĂ«se aplikacionet preken nga kjo dobĂ«si, mund tĂ« provoni tĂ« kaloni vlerĂ«n "1e300", e cila gjatĂ« pĂ«rpunimit me metodĂ«n c_double.from_param do tĂ« shkaktojĂ« njĂ« crash, pasi numri rezultues pĂ«rmban 308 shifra dhe nuk i pĂ«rshtatet buffer-it 256-byte. Shembulli i kodit problematic: import ctypes; x = ctypes.c_double.from_param(1e300); repr(x)
Problemi mbetet i përshtatshëm në Debian, Ubuntu dhe FreeBSD, por është tashmë eliminuar në Arch Linux, Fedora, SUSE. Në RHEL, dobësia nuk shfaqet për shkak të ndërtimit të paketave në mënyrë FORTIFY_SOURCE, e cila bllokon mbushjet e tilla të tamponëve në funksionet e vargjeve.
Burimi: opennet.ru
