Checkpoint เป„เบ”เป‰เบชเบฐเป€เบซเบ™เบตเป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ Safe-Linking, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡

เบšเปเบฅเบดเบชเบฑเบ”เบ”เปˆเบฒเบ™ เบ™เบณ เบชเบฐ เป€เปœเบต เบเบปเบ™เป„เบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ—เบตเปˆเบ›เบญเบ”เป„เบž, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เบ—เบตเปˆเบ”เบฑเบ”เปเบ›เบ‡เบ„เปเบฒเบ™เบดเบเบฒเบกเบซเบผเบทเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒ buffers เบ—เบตเปˆเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ— malloc. Safe-Linking เบšเปเปˆเป„เบ”เป‰เบ›เบดเบ”เบเบฑเป‰เบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบฑเบ‡เปเบปเบ”, เปเบ•เปˆเบกเบตเบชเปˆเบงเบ™เป€เบเบตเบ™เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”, เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบขเปˆเบฒเบ‡เปƒเบซเบเปˆเบซเบผเบงเบ‡เบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒเบ™เบญเบเบˆเบฒเบ buffer overflow เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบนเบ”เบฎเบตเบ”เป„เบ”เป‰, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบŠเบญเบเบซเบฒเบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบญเบทเปˆเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบผเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš. เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบ‚เบญเบ‡ heap เปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ.

Patches เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Safe-Linking เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบš Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) เปเบฅเบฐ Google TCMalloc, เปเบฅเบฐเบเบฑเบ‡เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เปƒเบ™ Chromium (เปƒเบ™
เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ›เบต 2012, Chromium เป„เบ”เป‰เบชเป‰เบฒเบ‡เปเบฅเป‰เบงเปƒเบ™เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ MaskPtr เป€เบžเบทเปˆเบญเปเบ™เปƒเบชเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ”เบฝเบงเบเบฑเบ™, เปเบ•เปˆเบเบฒเบ™เปเบเป‰เป„เบ‚เบˆเบฒเบ Checkpoint เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™).
เปเบœเปˆเบ™เบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบญเบฐเบ™เบธเบกเบฑเบ”เปเบฅเป‰เบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เปƒเบ™เป€เบ”เบทเบญเบ™เบชเบดเบ‡เบซเบฒ glibc 3.32 เปเบฅเบฐ Safe-Linking เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. uCibc-NG เบฎเบญเบ‡เบฎเบฑเบš Safe-Linking เป€เบ‚เบปเป‰เบฒ เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ 1.0.33 เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™ gperftools (tcmalloc เป€เบเบปเปˆเบฒ) เบเบญเบกเบฎเบฑเบš, เปเบ•เปˆเบˆเบฐเบ–เบทเบเบชเบฐเป€เบซเบ™เบตเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ TCMalloc (tcmalloc เปƒเบซเบกเปˆ) เบ›เบฐเบ•เบดเป€เบชเบ”เบ—เบตเปˆเบˆเบฐเบเบญเบกเบฎเบฑเบš เบ›เปˆเบฝเบ™เปเบ›เบ‡, เบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เบเบฒเบ™เป€เบชเบทเปˆเบญเบกเป‚เบŠเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบขเปˆเบฒเบ‡เบฎเบธเบ™เปเบฎเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เป€เบžเบทเปˆเบญเบเบงเบ”เบเบฒเป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเบ„เบฒเบ”. เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป‚เบ”เบเบงเบดเบชเบฐเบงเบฐเบเบญเบ™ Checkpoint เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™ Safe-Linking เบšเปเปˆเป„เบ”เป‰เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ heap เบซเบผเบธเบ”เบฅเบปเบ‡เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเบžเบฝเบ‡เปเบ•เปˆ 0.02%, เปเบฅเบฐเปƒเบ™เบเปเบฅเบฐเบ™เบตเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เป‚เบ”เบ 1.5% (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš, เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบเบตเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ. เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ Chromium เปเบกเปˆเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบงเปˆเบฒ "เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 2%"). เบฅเบงเบก
Safe-Linking เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™ 2-3 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบเบญเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡ free() เบ–เบทเบเป€เบญเบตเป‰เบ™, เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 3-4 เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡ malloc() เบ–เบทเบเป€เบญเบตเป‰เบ™. เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบกเบนเบ™เบ„เปˆเบฒเปเบšเบšเบชเบธเปˆเบกเปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

Checkpoint เป„เบ”เป‰เบชเบฐเป€เบซเบ™เบตเป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ Safe-Linking, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡

Safe-Linking เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” heap เบ•เปˆเบฒเบ‡เป†, เปเบ•เปˆเบเบฑเบ‡เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”เปƒเบซเป‰เบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ”เป†เบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบฅเบฒเบเบŠเบทเปˆเบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบงเบ—เบตเปˆเบงเบฒเบ‡เป„เบงเป‰เบ‚เป‰เบฒเบ‡ buffers เบ•เบปเบงเป€เบญเบ‡. เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบกเบฐเบซเบฒเบžเบฒเบเบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบšเบฅเบฑเบญเบเบ•เปเปˆเป„เบ›เปƒเบ™เบฅเบฐเบซเบฑเบ” (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเปเบฒเบฅเบฑเบš Glibc. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ เบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบชเบฒเบกเป€เบชเบฑเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”). เบงเบดเบ—เบตเบเบฒเบ™เบ•เบปเป‰เบกเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

+#define PROTECT_PTR(pos, ptr) \
+ ((__typeof (ptr)) ((((size_t) pos) >> 12) ^ ((size_t) ptr)))

+#define REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

- เบ•เปเปˆเป„เบ› = p->fd;
+ nextp = REVEAL_PTR (p->fd);
...

เป‚เบ”เบเป€เบ™เบทเป‰เบญเปเบ—เป‰เปเบฅเป‰เบงเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบชเบธเปˆเบกเบˆเบฒเบเบเบปเบ™เป„เบเบเบฒเบ™ Randomization เบ—เบตเปˆเบขเบนเปˆ ASLR (mmap_base) เป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบงเป€เบŠเบฑเปˆเบ™ Fast-Bins เปเบฅเบฐ TCache. เบเปˆเบญเบ™เบ—เบตเปˆเบ„เปˆเบฒเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ•เปเปˆเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ, เบกเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบ›เบ‡เบซเบ™เป‰เบฒเบเบฒเบเปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบซเบ™เป‰เบฒ. เบ•เบปเบงเบŠเบตเป‰เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ "(L>> PAGE_SHIFT) XOR (P)", เป€เบŠเบดเปˆเบ‡ P เปเบกเปˆเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เปเบฅเบฐ L เปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ•เบปเบงเบŠเบตเป‰เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰.

Checkpoint เป„เบ”เป‰เบชเบฐเป€เบซเบ™เบตเป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ Safe-Linking, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡

เป€เบกเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบš ASLR (Address Space Layout Randomization) เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ L bits เบเบฑเบš heap base address เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ„เปˆเบฒเบชเบธเปˆเบกเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบธเบ™เปเบˆเป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” P (เบชเบฐเบเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™ 12-bit เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒ 4096-byte). เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบ™เบตเป‰เบŠเปˆเบงเบเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ•เปเปˆเบเบฒเบ™เบฅเบฑเบเบฅเบญเบšเบ•เบปเบงเบŠเบตเป‰เปƒเบ™เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ•เบปเบงเบŠเบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบกเบฑเบ™เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ—เบ™เบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™ heap. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบฅเบฐเบซเบฑเบ” patch เบเบฑเบ‡เบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ‚เบญเบ‡เบ•เบฑเบ™, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบ›เปˆเบฝเบ™เบ•เบปเบงเบŠเบตเป‰เบ”เป‰เบงเบเบ„เปˆเบฒเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบšเบดเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบฅเบฐเบšเบปเบš 64-bit เบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบšเบฅเบฑเบญเบ. เบเบฒเบ™โ€‹เป‚เบˆเบกโ€‹เบ•เบต 15 โ€‹เปƒเบ™ 16 โ€‹เป€เบ—เบทเปˆเบญโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เปƒเบˆโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เป‚เบˆเบกโ€‹เบ•เบต.

เบงเบดเบ—เบตเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบšเบฒเบ‡เบชเปˆเบงเบ™ (เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ bytes เบ•เปˆเปเบฒ), เบเบฒเบ™เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบชเปเบฒเป€เบฅเบฑเบ” (เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบœเบนเป‰เป‚เบˆเบกเบ•เบต) เปเบฅเบฐเบ›เปˆเบฝเบ™เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบฅเบฒเบเบŠเบทเปˆเบขเบนเปˆเปƒเบ™เบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡. เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡, เบกเบฑเบ™เป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Safe-Linking เปƒเบ™ malloc เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบเบฒเบ™เบชเบฐเบเบฑเบ”เบเบฒเบ™เบ‚เบนเบ”เบฎเบตเบ”เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰ เบเปเบฒเบ™เบปเบ” เป‚เบ”เบเบ™เบฑเบเบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ”เบฝเบงเบเบฑเบ™ CVE-2020-6007 เปƒเบ™เป„เบŸเบญเบฑเบ”เบชเบฐเบฅเบดเบเบฐ Philips Hue Bridge, เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เบฅเบปเป‰เบ™เบ‚เบญเบ‡ buffer เปเบฅเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบญเบธเบ›เบฐเบเบญเบ™เป„เบ”เป‰.

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

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