Awọn idasilẹ atunṣe ti ede siseto Python 3.7.10 ati 3.6.13 wa, eyiti o ṣe atunṣe ailagbara kan (CVE-2021-3177) ti o le ja si ipaniyan koodu nigba ṣiṣe awọn nọmba aaye lilefoofo ti ko fọwọsi ni awọn olutọju ti o pe awọn iṣẹ C nipa lilo ẹrọ ctypes . Iṣoro naa tun kan Python 3.8 ati awọn ẹka 3.9, ṣugbọn awọn imudojuiwọn fun wọn tun wa ni ipo oludije itusilẹ (itusilẹ ti a ṣeto fun Oṣu Kẹta Ọjọ 1).
Iṣoro naa jẹ idi nipasẹ iṣan omi ifipamọ ninu iṣẹ ctypes PyCArg_repr (), eyiti o waye nitori lilo ailewu ti sprintf. Ni pataki, lati ṣe ilana abajade ti iyipada 'sprintf(fifipamọ,') ", ara-> tag, ara-> iye.b)' soto a aimi saarin pa 256 baiti ("char saarin [256]"), nigba ti esi le koja yi iye. Lati ṣayẹwo ailagbara ti awọn ohun elo si ailagbara, o le gbiyanju lati kọja iye “1e300”, eyiti, nigbati o ba ṣiṣẹ nipasẹ ọna c_double.from_param, yoo ja si jamba, nitori nọmba abajade ni awọn ohun kikọ 308 ati pe ko baamu sinu kan. 256-baiti saarin. Apẹẹrẹ koodu iṣoro: agbewọle ctypes; x = ctypes.c_double.from_param (1e300); atunṣe (x)
Iṣoro naa ko tii yanju ninu Debian, Ubuntu àti FreeBSD, ṣùgbọ́n a ti ṣe àtúnṣe rẹ̀ tẹ́lẹ̀ ní Arch Linux, Fedora, SUSE. Nínú RHEL, àìlera náà kò fara hàn nítorí pé àwọn páákì tí a kọ́ ní ipò FORTIFY_SOURCE, èyí tí ó ń dí irú àfikún bẹ́ẹ̀ lọ́wọ́ nínú àwọn iṣẹ́ okùn.
orisun: opennet.ru
