Microsoft yesterday confirmed that a single superfluous character in its own development code is responsible for the bug that
has let hackers exploit Internet Explorer (IE) since early July.
A pair of German researchers who analyzed a vulnerability in a Microsoft-made ActiveX control came to the same conclusion
three weeks ago.
"The bug is simply a typo," Michael Howard, a principal security program manager in Microsoft's security engineering and communications
group, said in a post Tuesday to the Security Development Lifecycle (SDL) blog. Howard, who is probably best known for co-authoring Writing Secure Code, went on to say that the typo -- an errant "&" character -- is the "core issue" in the MSVidCtl ActiveX control.
That video-streaming control was created by Microsoft using a modified version of an older edition of a code "library," dubbed
Active Template Library (ATL), that Microsoft admitted Tuesday contained multiple vulnerabilities. Also on Tuesday, Microsoft patched Visual Studio, the company's development platform that contains ATL. Those patches, however, do not automatically fix software that was
developed using the buggy ATL. Instead, vendors -- Microsoft as well as third-party firms -- must use the patched Visual Studio
to recompile their code, then distribute the new, secure software to users.
Howard said that the bug in the MSVidCtl ActiveX control was introduced by an internal version of ATL, not one that was available
to outside developers.
Others at Microsoft drew a direct line between the ATL bug Howard described to the public exploits hackers have been using
for much of this month, including drive-by attacks conducted from thousands of compromised Web sites.
"This public exploit took advantage of the fact that MSVidCtl uses a modified version of vulnerable ATL headers," said Fermin
Serna, an engineer in the Microsoft Security Research Center (MSRC), in a blog post earlier Tuesday. "In this specific instance, the vulnerability allows an attacker to corrupt memory
which may lead to a remote code execution," added Serna.
The extra "&" had been fingered by a pair of German researchers -- Thomas Dullien, the CEO and head of research at Zynamics GmbH, and Dennis Elser -- on July 9, when the former posted their
findings in a blog post. The mistake, said Dullien, was in an ATL function called "ATL::CComVariant::ReadFromStream."
For more enterprise computing news, visit Computerworld. Story copyright Computerworld, Inc.