แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„ Python แž“แŸ…แž–แŸแž›แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž›แŸแžแž”แŸ’แžšแž—แžถแž‚แžŠแŸ‚แž›แž˜แžทแž“แž˜แžถแž“แžŸแžปแž–แž›แž—แžถแž–แž“แŸ…แž€แŸ’แž“แžปแž„ ctypes

แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แžถแžšแž€แŸ‚แžแž˜แŸ’แžšแžผแžœแž“แŸƒแž—แžถแžŸแžถแžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธ Python 3.7.10 แž“แžทแž„ 3.6.13 แžขแžถแž…แžšแž€แž”แžถแž“ แžŠแŸ‚แž›แž‡แžฝแžŸแž‡แžปแž›แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡ (CVE-2021-3177) แžŠแŸ‚แž›แžขแžถแž…แž“แžถแŸ†แž‘แŸ…แžŠแž›แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžผแžŠแž“แŸ…แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แŸแžแžขแžŽแŸ’แžแŸ‚แžแž‘แžนแž€แžŠแŸ‚แž›แž˜แžทแž“แž˜แžถแž“แžŸแžปแž–แž›แž—แžถแž–แž“แŸ…แž€แŸ’แž“แžปแž„แžงแž”แž€แžšแžŽแŸแžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžŠแŸ‚แž›แž แŸ…แž˜แžปแžแž„แžถแžš C แžŠแŸ„แž™แž”แŸ’แžšแžพแž™แž“แŸ’แžแž€แžถแžš ctypes . แž”แž‰แŸ’แž แžถแž“แŸแŸ‡แž€แŸแž”แŸ‰แŸ‡แž–แžถแž›แŸ‹แžŠแž›แŸ‹แžŸแžถแžแžถ Python 3.8 แž“แžทแž„ 3.9 แž•แž„แžŠแŸ‚แžš แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž€แžถแžšแžขแžถแž”แŸ‹แžŠแŸแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž–แžฝแž€แž‚แŸแž“แŸ…แžแŸ‚แžŸแŸ’แžแžทแžแž€แŸ’แž“แžปแž„แžŸแŸ’แžแžถแž“แž—แžถแž–แž”แŸแž€แŸ’แžแž‡แž“แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™ (แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžŠแŸ‚แž›แž”แžถแž“แž‚แŸ’แžšแŸ„แž„แž‘แžปแž€แž“แŸ…แžแŸ’แž„แŸƒแž‘แžธ 1 แžแŸ‚แž˜แžธแž“แžถ)แŸ”

แž”แž‰แŸ’แž แžถแž‚แžบแž”แžŽแŸ’แžแžถแž›แž˜แž€แž–แžธแž€แžถแžšแž แŸ€แžšแžŸแŸ†แž”แŸ„แžšแž“แŸ…แž€แŸ’แž“แžปแž„แž˜แžปแžแž„แžถแžš ctypes PyCArg_repr() แžŠแŸ‚แž›แž€แžพแžแžกแžพแž„แžŠแŸ„แž™แžŸแžถแžšแžแŸ‚แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ sprintf แžŠแŸ‚แž›แž˜แžทแž“แž˜แžถแž“แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แŸ” แž‡แžถแž–แžทแžŸแŸแžŸ แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แž‘แŸ’แž’แž•แž›แž“แŸƒแž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžš 'sprintf(buffer, " ", self->tag, self->value.b)' แž”แžถแž“แž”แŸ‚แž„แž…แŸ‚แž€แžŸแžแžทแž”แžŽแŸ’แžŠแŸ„แŸ‡แžขแžถแžŸแž“แŸ’แž“แž“แŸƒ 256 แž”แŸƒ ("char buffer[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

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹