پائٿون ۾ ڪمزوري جڏهن غير تصديق ٿيل فرڪشنل نمبرن کي هٿي وٺندي ctypes ۾

پائٿون پروگرامنگ ٻولي 3.7.10 ۽ 3.6.13 جا اصلاحي رليز موجود آهن، جيڪي هڪ ڪمزوريءَ (CVE-2021-3177) کي درست ڪن ٿا، جيڪي ڪوڊ جي عمل جي نتيجي ۾ ٿي سگهن ٿا جڏهن هينڊلرن ۾ اڻ تصديق ٿيل فلوٽنگ پوائنٽ نمبرن کي پروسيس ڪري رهيا آهن جيڪي Ctypes ميڪانيزم کي استعمال ڪندي C فنڪشن کي سڏين ٿا. . اهو مسئلو پٿون 3.8 ۽ 3.9 شاخن کي پڻ متاثر ڪري ٿو، پر انهن لاءِ تازه ڪاريون اڃا تائين رليز اميدوار جي حيثيت ۾ آهن (رليز 1 مارچ لاءِ مقرر ڪيل).

مسئلو ctypes فنڪشن PyCArg_repr() ۾ بفر اوور فلو جي ڪري آهي، جيڪو اسپرنٽف جي غير محفوظ استعمال جي ڪري ٿئي ٿو. خاص طور تي، تبديليءَ جي نتيجي تي عمل ڪرڻ لاءِ 'sprintf(buffer, " ", self->tag, self->value.b)' 256 بائيٽ جو جامد بفر مختص ڪيو ("چار بفر[256]")، جڏهن ته نتيجو هن قدر کان وڌي سگهي ٿو. ايپليڪيشنن جي خطرن جي خطري کي جانچڻ لاءِ، توھان ڪوشش ڪري سگھو ٿا "1e300" جي قدر کي پاس ڪرڻ، جيڪو، جڏھن c_double.from_param طريقي سان عمل ڪيو ويندو، تباھي جو سبب بڻجندو، ڇاڪاڻ ته نتيجو نمبر 308 اکرن تي مشتمل آھي ۽ ان ۾ نه ٿو ٺھي. 256 بائيٽ بفر. مشڪلاتي ڪوڊ جو مثال: درآمد جا قسم؛ x = ctypes.c_double.from_param(1e300)؛ repr(x)

مسئلو Debian، Ubuntu ۽ FreeBSD ۾ اڻڄاتل رهي ٿو، پر آرڪ لينڪس، فيڊورا، SUSE ۾ اڳ ۾ ئي طئي ڪيو ويو آهي. RHEL ۾، FORTIFY_SOURCE موڊ ۾ پيڪيج اسيمبليءَ جي ڪري نقصان نه ٿو ٿئي، جيڪو سٽرنگ ڪمن ۾ اهڙي بفر اوور فلوز کي بلاڪ ڪري ٿو.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو