Ctypes เจตเจฟเฉฑเจš เจ—เฉˆเจฐ-เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจซเฉเจฐเฉˆเจ•เจธเจผเจจเจฒ เจจเฉฐเจฌเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจตเฉ‡เจฒเฉ‡ เจชเจพเจˆเจฅเจจ เจตเจฟเฉฑเจš เจ•เจฎเจœเจผเฉ‹เจฐเฉ€

เจชเจพเจˆเจฅเจจ เจชเฉเจฐเฉ‹เจ—เฉเจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ 3.7.10 เจ…เจคเฉ‡ 3.6.13 เจฆเฉ‡ เจธเฉเจงเจพเจฐเจพเจคเจฎเจ• เจฐเฉ€เจฒเฉ€เจœเจผ เจ‰เจชเจฒเจฌเจง เจนเจจ, เจœเฉ‹ เจ‡เฉฑเจ• เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ (CVE-2021-3177) เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจ•เจฟ เจนเฉˆเจ‚เจกเจฒเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ…เจฃ-เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจซเจฒเฉ‹เจŸเจฟเฉฐเจ— เจชเฉเจ†เจ‡เฉฐเจŸ เจจเฉฐเจฌเจฐเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเจพ เจ•เจพเจฐเจจ เจฌเจฃ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‹ ctypes เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ C เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค . เจธเจฎเฉฑเจธเจฟเจ† เจชเจพเจˆเจฅเจจ 3.8 เจ…เจคเฉ‡ 3.9 เจฌเฉเจฐเจพเจ‚เจšเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ…เจœเฉ‡ เจตเฉ€ เจฐเฉ€เจฒเฉ€เจœเจผ เจ‰เจฎเฉ€เจฆเจตเจพเจฐ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจนเจจ (1 เจฎเจพเจฐเจš เจจเฉ‚เฉฐ เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ)เฅค

เจธเจฎเฉฑเจธเจฟเจ† ctypes เจซเฉฐเจ•เจธเจผเจจ PyCArg_repr() เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฌเจซเจฐ เจ“เจตเจฐเจซเจฒเฉ‹ เจ•เจพเจฐเจจ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ sprintf เจฆเฉ€ เจ…เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจตเจฐเจคเฉ‹เจ‚ เจ•เจพเจฐเจจ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡, เจชเจฐเจฟเจตเจฐเจคเจจ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฒเจˆ 'sprintf(buffer, " ", เจธเจตเฉˆ->เจŸเฉˆเจ—, เจธเจตเฉˆ->เจฎเฉเฉฑเจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจฆเฉ€ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ "256e256" เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจชเจพเจธ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเฉ‹ เจ•เจฟ เจœเจฆเฉ‹เจ‚ c_double.from_param เจตเจฟเจงเฉ€ เจฆเฉเจ†เจฐเจพ เจธเฉฐเจธเจพเจงเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เฉฑเจ• เจ•เจฐเฉˆเจธเจผ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ เจธเฉฐเจ–เจฟเจ† เจตเจฟเฉฑเจš 1 เจ…เฉฑเจ–เจฐ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจตเจฟเฉฑเจš เจซเจฟเฉฑเจŸ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค 300-เจฌเจพเจˆเจŸ เจฌเจซเจฐเฅค เจธเจฎเฉฑเจธเจฟเจ† เจตเจพเจฒเฉ‡ เจ•เฉ‹เจก เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ: เจ†เจฏเจพเจค เจ•เจฟเจธเจฎ; x = ctypes.c_double.from_param(308e256); repr(x)

เจธเจฎเฉฑเจธเจฟเจ† เจกเฉ‡เจฌเฉ€เจ…เจจ, เจ‰เจฌเฉฐเจŸเฉ‚ เจ…เจคเฉ‡ เจซเฉเจฐเฉ€เจฌเฉ€เจเจธเจกเฉ€ เจตเจฟเฉฑเจš เจธเจฅเจฟเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจ†เจฐเจš เจฒเฉ€เจจเจ•เจธ, เจซเฉ‡เจกเฉ‹เจฐเจพ, เจธเฉ‚เจธเฉ‡ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจนเฉฑเจฒ เจ•เฉ€เจคเฉ€ เจœเจพ เจšเฉเฉฑเจ•เฉ€ เจนเฉˆเฅค RHEL เจตเจฟเฉฑเจš, FORTIFY_SOURCE เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจœ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฆเฉ‡ เจ•เจพเจฐเจจ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€, เจœเฉ‹ เจธเจŸเฉเจฐเจฟเฉฐเจ— เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเฉ‡ เจฌเจซเจฐ เจ“เจตเจฐเจซเจฒเฉ‹ เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เจฆเจพ เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹