Python เชฎเชพเช‚ เชจเชฌเชณเชพเชˆ เชœเซเชฏเชพเชฐเซ‡ ctypes เชฎเชพเช‚ เช…เชฎเชพเชจเซเชฏ เช…เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชธเช‚เช–เซเชฏเชพเช“เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเซ‡ เช›เซ‡

เชชเชพเชฏเชฅเซ‹เชจ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ 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)

เชกเซ‡เชฌเชฟเชฏเชจ, เช‰เชฌเซเชจเซเชŸเซ เช…เชจเซ‡ เชซเซเชฐเซ€เชฌเซ€เชเชธเชกเซ€เชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพ เช…เชจเชฟเชถเซเชšเชฟเชค เชฐเชนเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช†เชฐเซเช• เชฒเชฟเชจเช•เซเชธ, เชซเซ‡เชกเซ‹เชฐเชพ, SUSE เชฎเชพเช‚ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช เซ€เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. RHEL เชฎเชพเช‚, FORTIFY_SOURCE เชฎเซ‹เชกเชฎเชพเช‚ เชชเซ‡เช•เซ‡เชœ เชเชธเซ‡เชฎเซเชฌเชฒเซ€เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชจเชฌเชณเชพเชˆ เช†เชตเชคเซ€ เชจเชฅเซ€, เชœเซ‡ เชธเซเชŸเซเชฐเชฟเช‚เช— เชซเช‚เช•เซเชถเชจเซเชธเชฎเชพเช‚ เช†เชตเชพ เชฌเชซเชฐ เช“เชตเชฐเชซเซเชฒเซ‹เชจเซ‡ เช…เชตเชฐเซ‹เชงเซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹