In computer security, heap feng shui (also known as heap grooming[1]) is a technique used in exploits to facilitate arbitrary code execution.[2] The technique attempts to manipulate the layout of the heap by making heap allocations of carefully selected sizes. It is named after feng shui, an ancient Chinese system of aesthetics that involves the selection of precise alignments in space.
The term is general and can be used to describe a variety of techniques for bypassing heap protection strategies. The paper often credited with naming the technique, "Heap Feng Shui in JavaScript",[3] used it to refer to an exploit in which a dangling pointer was aligned with a portion of an attacker-controlled chunk. However, it has also found usage in capture the flag events to describe attacks that exploit characteristics of heap layout, such as the spacing between chunks.[4]