Chakra Unordered Dictionary Object Reuse Vulnerability
Chakra, the JavaScript engine used in Microsoft Edge, implemented the reuse of deleted properties of an unordered dictionary object. The code for this implementation was found in the TryReuseDeletedPropertyIndex and TryUndeleteProperty functions. The TryUndeleteProperty function was called from the SetPropertyFromDescriptor function, which was used to set properties on the object. If the property was marked as deleted, the function would attempt to reuse the deleted property index. If the property was not an internal property, the function would fail and the property would not be set. This could lead to a denial of service attack, as the property would not be set and the application would not function as expected.