SÄrbarhet i Python som uppstÄr vid hantering av okontrollerade flyttal i ctypes

Korrigerande versioner av programmeringssprÄket Python 3.7.10 och 3.6.13 Àr tillgÀngliga, dÀr en sÄrbarhet (CVE-2021-3177) har ÄtgÀrdats, vilket kan leda till kodexekvering vid hantering av icke kontrollerade flyttal i funktioner som anropar C-funktioner via ctypes-mekanismen. Problemet pÄverkar Àven versioner av Python 3.8 och 3.9, men uppdateringar för dessa Àr Ànnu i kandidatstatus (lansering planerad till den 1 mars).

Problemet orsakas av en buffertöverskridning i ctypes-funktionen PyCArg_repr(), som uppstĂ„r pĂ„ grund av osĂ€ker anvĂ€ndning av sprintf. Specifikt tilldelades ett statiskt buffert utrymme om 256 byte (‘char buffer[256]’) för att hantera resultatet av konverteringen ‘sprintf(buffer, “”, self->tag, self->value.b)’, nĂ€r resultatet kunde överskrida detta vĂ€rde. För att kontrollera om applikationer Ă€r sĂ„rbara kan man försöka överföra vĂ€rdet “1e300”, vilket med c_double.from_param kommer att orsaka krasch eftersom det resulterande talet innehĂ„ller 308 tecken och inte fĂ„r plats i en 256-byte buffert. Exempel pĂ„ problematisk kod: import ctypes; x = ctypes.c_double.from_param(1e300); repr(x)

Problemet kvarstÄr olöst i Debian, Ubuntu och FreeBSD, men har redan ÄtgÀrdats i Arch Linux, Fedora, SUSE. I RHEL upptrÀder inte sÄrbarheten pÄ grund av paketbygge i FORTIFY_SOURCE-lÀge, vilket blockerar sÄdana buffertöverskridningar i strÀngfunktioner.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster