Since hardened_malloc has no inline metadata, our canary feature exists to avoid slab allocations being placed right next to each other. Their main purpose is providing 8 bytes of padding to absorb small overflows with a leading zero byte to stop most C string related overflows.
Login to reply
Replies (1)
Scudo has inline metadata with 16-bit checksums of the metadata, address and a global secret. Those exist to provide probabilistic protection of inline metadata. Our canaries only use a random value to detect linear overflow at free, which is often way too late. MTE works better.