Buffer overflow เปƒเบ™ OpenSSL เบ–เบทเบเบ‚เบนเบ”เบฎเบตเบ”เป€เบกเบทเปˆเบญเบเบงเบ”เบชเบญเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ X.509

เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบฅเบฐเบซเบฑเบ”เบฅเบฑเบš OpenSSL 3.0.7 เป„เบ”เป‰เบ–เบทเบเป€เบœเบตเบเปเบœเปˆเปเบฅเป‰เบง, เป€เบŠเบดเปˆเบ‡เปเบเป‰เป„เบ‚เบชเบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ. เบšเบฑเบ™เบซเบฒเบ—เบฑเบ‡เบชเบญเบ‡เปเบกเปˆเบ™เป€เบเบตเบ”เบกเบฒเบˆเบฒเบ buffer overflows เปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบŠเปˆเบญเบ‡เบญเบตเป€เบกเบฅเปŒเปƒเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ X.509 เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบกเบตเบเบญเบšเบžเบดเป€เบชเบ”. เปƒเบ™เป€เบงเบฅเบฒเบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบเบฒเบ™เปเบเป‰เป„เบ‚, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ OpenSSL เบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเบซเบผเบฑเบเบ–เบฒเบ™เปƒเบ”เป†เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบœเบนเป‰เป‚เบˆเบกเบ•เบต.

เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบเปˆเบญเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆเป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เปƒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเป„เบ”เป‰เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡เปƒเบ™เบฅเบฐเบ”เบฑเบšเบญเบฑเบ™เบ•เบฐเบฅเบฒเบ, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบฎเบญเบ‡เป€เบญเบปเบฒเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™, เบฅเบฐเบ”เบฑเบšเบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบˆเบฐเบซเบผเบธเบ”เบฅเบปเบ‡เบ–เป‰เบฒเบšเบฑเบ™เบซเบฒเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ atypical เบซเบผเบทเบ–เป‰เบฒเบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ•เปเปˆเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบฎเบธเบ™เปเบฎเบ‡เป„เบ”เป‰เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡เบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ‚เบญเบ‡เบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เป„เบ”เป‰เบชเบฐเบซเบผเบธเบšเบงเปˆเบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เป„เบ”เป‰เบ–เบทเบเบชเบฐเบเบฑเบ”เป‚เบ”เบเบเบปเบ™เป„เบเบ›เป‰เบญเบ‡เบเบฑเบ™ stack overflow เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบซเบผเบฒเบเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบฎเบนเบšเปเบšเบšเบ•เบฒเบ‚เปˆเบฒเบเป„เบŸเบŸเป‰เบฒเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบ Linux เบšเบฒเบ‡เบญเบฑเบ™เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰ 4 เป„เบšเบ•เปŒเบ—เบตเปˆเบญเบญเบเป„เบ›เบˆเบฒเบเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบ–เบทเบเบŠเป‰เบญเบ™เปƒเบชเปˆเปƒเบ™ buffer เบ•เปเปˆเป„เบ›เปƒเบ™ stack, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบงเปˆเบฒเบกเบตเป€เบงเบ—เบตเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบนเบ”เบฎเบตเบ”เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”.

เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบฅเบฐเบšเบธ:

  • CVE-2022-3602 - เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ, เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป„เบ”เป‰เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเป€เบ›เบฑเบ™เบชเปเบฒเบ„เบฑเบ™, เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™ overflow buffer 4-byte เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบงเบ”เป€เบšเบดเปˆเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆเบญเบตเป€เบกเบงเบญเบญเบเปเบšเบšเบžเบดเป€เบชเบ”เปƒเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ X.509. เปƒเบ™เบฅเบนเบเบ„เป‰เบฒ TLS, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ‚เบนเบ”เบฎเบตเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบœเบนเป‰เป‚เบˆเบกเบ•เบต. เปƒเบ™เป€เบŠเบตเบšเป€เบงเบต TLS, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ‚เบนเบ”เบฎเบตเบ”เป„เบ”เป‰เบ–เป‰เบฒเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบฅเบนเบเบ„เป‰เบฒเป‚เบ”เบเปƒเบŠเป‰เปƒเบšเบฎเบฑเบšเบฎเบญเบ‡เบ–เบทเบเปƒเบŠเป‰. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ manifests เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ„เบงเบฒเบกเป„เบงเป‰เบงเบฒเบ‡เปƒเบˆเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™, i.e. เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เป€เบˆเบปเป‰เบฒเปœเป‰เบฒเบ—เบตเปˆเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ‚เบญเบ‡เบœเบนเป‰เป‚เบˆเบกเบ•เบต.
  • CVE-2022-3786 เป€เบ›เบฑเบ™ vector เบญเบทเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ CVE-2022-3602, เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบšเบฑเบ™เบซเบฒ. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเบ•เบปเป‰เบกเบฅเบปเบ‡เป„เบ›เป€เบ–เบดเบ‡เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™ overflowing buffer เปƒเบ™ stack เป‚เบ”เบเบˆเปเบฒเบ™เบงเบ™ bytes arbitrary เบ—เบตเปˆเบกเบต "." (i. e. เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเป‰เบ™เปเบฅเบฐเบšเบฑเบ™เบซเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡).

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบชเบฒเบ‚เบฒ OpenSSL 3.0.x เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ (เบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เปเบ›เบ‡เบ‚เบญเบ‡ Unicode (punycode) เป€เบžเบตเปˆเบกเปƒเบชเปˆเบชเบฒเบ‚เบฒ 3.0.x). เบเบฒเบ™เบ›เปˆเบญเบ OpenSSL 1.1.1, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš OpenSSL fork libraries LibreSSL เปเบฅเบฐ BoringSSL, เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบเบšเบฑเบ™เบซเบฒ. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ OpenSSL 1.1.1s เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เป€เบŠเบดเปˆเบ‡เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž.

เบชเบฒเบ‚เบฒ OpenSSL 3.0 เบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเป€เบŠเบฑเปˆเบ™ Ubuntu 22.04, CentOS Stream 9, RHEL 9, OpenMandriva 4.2, Gentoo, Fedora 36, โ€‹โ€‹โ€‹โ€‹Debian Testing/Unstable. เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ (Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch). เปƒเบ™ SUSE Linux Enterprise 15 SP4 เปเบฅเบฐ openSUSE Leap 15.4, เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบกเบต OpenSSL 3.0 เปเบกเปˆเบ™เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เปเบžเบฑเบเป€เบเบ”เบฅเบฐเบšเบปเบšเปƒเบŠเป‰เบชเบฒเบ‚เบฒ 1.1.1. Debian 1, Arch Linux, Void Linux, Ubuntu 11, Slackware, ALT Linux, RHEL 20.04, OpenWrt, Alpine Linux 8 เปเบฅเบฐ FreeBSD เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เบชเบฒเบ‚เบฒ OpenSSL 3.16.x.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™