A Python sebezhetősége, amely a nem ellenőrzött lebegőpontos számok ctypes-ben való feldolgozása során jelentkezik.

Elérhetők a Python programozási nyelv 3.7.10 és 3.6.13 verzióinak javítókiadásai, amelyek megszüntetik a (CVE-2021-3177) sebezhetőséget, amely kód végrehajtásához vezethet nem ellenőrzött lebegő számok feldolgozása során a C nyelven írt funkciókat hívó kezelőkben a ctypes mechanizmus használatával. A probléma a Python 3.8 és 3.9 ágain is érinti, de az ezekre vonatkozó frissítések még jelölt kiadás állapotában vannak (az ütemezett kiadás dátuma március 1.).

A probléma a ctypes funkció PyCArg_repr() puffer-túlcsordulásából adódik, amely a sprintf nem biztonságos használatából ered. Különösen a ‘sprintf(buffer, "", self->tag, self->value.b)’ kifejezés eredményének feldolgozására a 256 bájt méretű statikus puffer ('char buffer[256]') lett fenntartva, miközben az eredmény meghaladhatta ezt az értéket. Az alkalmazások sebezhetőségének ellenőrzésére megpróbálható a '1e300' érték átadása, amely a c_double.from_param módszerrel való feldolgozáskor összeomlást okoz, mivel az eredményül kapott szám 308 karaktert tartalmaz, és nem fér el a 256 bájt méretű pufferben. Példa problémás kódra: import ctypes; x = ctypes.c_double.from_param(1e300); repr(x)

A probléma a Debian, Ubuntu és FreeBSD rendszerekben még mindig javítatlan, de már orvosolták Arch Linux, Fedora és SUSE esetén. A RHEL esetében a sebezhetőség nem jelentkezik, mivel a csomagok FORTIFY_SOURCE üzemmódban történő összeállítása blokkolja az ilyen típusú puffertúlcsordulásokat a karakterlánc funkciókban.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster