Ailagbara ni Python nigba mimu awọn nọmba ida ti ko wulo ni awọn ctypes

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 wa ni aiṣatunṣe ni Debian, Ubuntu ati FreeBSD, ṣugbọn o ti wa titi tẹlẹ ni Arch Linux, Fedora, SUSE. Ni RHEL, ailagbara naa ko waye nitori apejọ package ni ipo FORTIFY_SOURCE, eyiti o ṣe idiwọ iru iṣubu buffer ni awọn iṣẹ okun.

orisun: opennet.ru

Fi ọrọìwòye kun