ืืืื ืืช ืืืืืจืืช ืืชืงื ืืช ืฉื ืฉืคืช ืืชืื ืืช 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)
ืืืขืื ื ืืชืจื ืื ืืชืืงื ืช ืืืืืื, ืืืืื ืื ื-FreeBSD, ืืื ืืืจ ืชืืงื ื ื- Arch Linux, Fedora, SUSE. ื-RHEL, ืืคืืืขืืช ืืื ื ืืชืจืืฉืช ืขืงื ืืจืืืช ืืืืื ืืืฆื FORTIFY_SOURCE, ืืฉืจ ืืืกืืช ืืืืฉื ืืื ืฉื ืืืืจ ืืคืื ืงืฆืืืช ืืืจืืืช.
ืืงืืจ: OpenNet.ru