சைப்களில் சரிபார்க்கப்படாத பின்ன எண்களைக் கையாளும் போது பைத்தானில் பாதிப்பு

பைதான் நிரலாக்க மொழியின் திருத்தமான வெளியீடுகள் 3.7.10 மற்றும் 3.6.13 கிடைக்கின்றன, இது பாதிப்பை (CVE-2021-3177) சரிசெய்கிறது, இது ctypes பொறிமுறையைப் பயன்படுத்தி C செயல்பாடுகளை அழைக்கும் ஹேண்ட்லர்களில் சரிபார்க்கப்படாத மிதக்கும் புள்ளி எண்களைச் செயலாக்கும் போது குறியீடு செயல்படுத்தலுக்கு வழிவகுக்கும். . சிக்கல் பைதான் 3.8 மற்றும் 3.9 கிளைகளையும் பாதிக்கிறது, ஆனால் அவற்றுக்கான புதுப்பிப்புகள் இன்னும் வெளியீட்டு வேட்பாளர் நிலையில் உள்ளன (வெளியீடு மார்ச் 1 அன்று திட்டமிடப்பட்டுள்ளது).

ctypes செயல்பாட்டின் PyCArg_repr() இல் இடையக நிரம்பி வழிவதால் சிக்கல் ஏற்படுகிறது, இது sprintf இன் பாதுகாப்பற்ற பயன்பாட்டின் காரணமாக ஏற்படுகிறது. குறிப்பாக, உருமாற்றத்தின் முடிவைச் செயல்படுத்த 'sprintf(buffer, " ", self->tag, self->value.b)' ஆனது 256 பைட்டுகளின் நிலையான இடையகத்தை ("சார் பஃபர்[256]") ஒதுக்கியது, அதே சமயம் முடிவு இந்த மதிப்பை மீறலாம். பாதிப்புக்கு பயன்பாடுகளின் பாதிப்பை சரிபார்க்க, நீங்கள் "1e300" மதிப்பை அனுப்ப முயற்சி செய்யலாம், இது c_double.from_param முறையில் செயலாக்கப்படும் போது, ​​ஒரு செயலிழப்புக்கு வழிவகுக்கும், ஏனெனில் இதன் விளைவாக வரும் எண்ணில் 308 எழுத்துகள் உள்ளன, மேலும் இது ஒரு எழுத்துக்கு பொருந்தாது. 256-பைட் தாங்கல். சிக்கலான குறியீட்டின் எடுத்துக்காட்டு: இறக்குமதி ctypes; x = ctypes.c_double.from_param(1e300); repr(x)

Debian, Ubuntu மற்றும் FreeBSD இல் சிக்கல் தீர்க்கப்படாமல் உள்ளது, ஆனால் Arch Linux, Fedora, SUSE இல் ஏற்கனவே சரி செய்யப்பட்டது. RHEL இல், FORTIFY_SOURCE பயன்முறையில் பேக்கேஜ் அசெம்பிளி செய்வதால் பாதிப்பு ஏற்படாது, இது சரம் செயல்பாடுகளில் இத்தகைய இடையக வழிதல்களைத் தடுக்கிறது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்