Rapidly alternating an iFrame between an RSS XML file and about:blank at 100ms intervals crashed IE11 in IEFRAME!CFeedViewer::_HandleZoomChange. The crash was classified PROBABLY_EXPLOITABLE — the faulting address controlled a branch target, indicating a likely use-after-free scenario.

<iframe name="ifrName" width="200" height="30"></iframe>

<script language="JavaScript">
function main()
{
	if (sch = !window.sch)
	{
		ifrName.location = "rss.xml";
	}
	else
	{
		window.open("about:blank", "ifrName");
	}
}
</script>

Triggering setInterval('main()', 100) caused the iFrame to oscillate between RSS rendering mode and blank. The RSS viewer component (CFeedViewer) was being torn down and re-initialized faster than it could clean up. When _HandleZoomChange fired during a zoom state transition triggered by the markup switch, eax was null — a mov ecx, dword ptr [eax] at +0x32 caused the access violation. The call chain traces through CZoomState::LoadPersistedZoomStateCOmWindowProxy::SwitchMarkup, suggesting the feed viewer’s reference to its hosting window was released before the zoom callback completed.

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