Një dobësi në Python, e cila shfaqet gjatë trajtimit të numrave të papërcaktuar në ctypes

Janë të disponueshme versionet e rregullimit për gjuhën e programimit Python 3.7.10 dhe 3.6.13, në të cilat është eliminuar dobësia (CVE-2021-3177), e cila mund të çojë në ekzekutimin e kodit gjatë trajtimit të numrave të papërcaktuar me pikë lëvizëse në menaxherët që thërrasin funksione në gjuhën C me anë të mekanizmit ctypes. Problemi ndikon gjithashtu në degët Python 3.8 dhe 3.9, por përditësimet për to aktualisht janë në gjendje kandidati për lëshim (publikimi është planifikuar për 1 marsin).

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 ndarë një tampon 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 janë të ndjeshme ndaj kësaj ndjeshmërie, mund të provoni të transferoni vlerën '1e300', e cila, kur përpunon me metodën c_double.from_param, do të shkaktojë një crash, pasi numri rezultues ka 308 shifra dhe nuk i përshtatet tamponit 256-byte. Shembuj i kodit problematik: import ctypes; x = ctypes.c_double.from_param(1e300); repr(x)

Problemi mbetet i pacaktuar në Debian, Ubuntu dhe FreeBSD, por është zgjidhur në Arch Linux, Fedora, SUSE. Në RHEL, ndjeshmëria nuk shfaqet për shkak të ndërtimit të paketave në modin FORTIFY_SOURCE, i cili ndalon të tilla mbushje tamponi në funksionet e stringut.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster