Extra '&' in Microsoft development code gave hackers IE exploit

Company's security development expert confirms reports by outside researchers

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."

That function led the two researchers to several other Microsoft-made components, including several critical to important Windows applications, such as IE, Windows Media Player and Terminal Services. "The bug is actually much 'deeper' than most people realize," said Dullien at the time, "[and] the kill-bit fix is clearly insufficient, as there are bound to be many other ways of triggering the issue."

The "kill-bit" fix Dullien alluded to was one that Microsoft had issued in the form of a stop-gap tool on July 6 to disable the flawed ActiveX control. On July 14, Microsoft pushed the same kill-bit settings to Windows users as an update on its regular monthly patch day.

On Tuesday, Microsoft acknowledged that the kill-bit solution was insufficient because of the bugs in ATL. In response, it has also updated IE, which now tries to block attackers from exploiting the ATL flaws in ActiveX controls.

Howard did not apologize for the programming error. "I contend that this would be very difficult to spot in a code review, and is not picked up by the C/C++ compiler," he said. He also said that Microsoft's development practice of "fuzzing" code -- subjecting software to a wide range of data input to see if, and where, it breaks -- didn't catch the extra "&" because the automated "fuzzers" Microsoft now uses aren't equipped to detect such situations.

"We are in the process of adding more heuristics to our fuzzing engine so it can include these COM-specific bytes if needed," Howard said.

The MSVidCtl ActiveX control has still not been patched, Mike Reavey, director of the MSRC, admitted in an interview Tuesday. "It hasn't been updated, we're still investigating," Reavey said.

When asked whether other Windows components, including those Dullien and Elser listed, also have the flawed ATL code, Reavey said Microsoft is still examining its own software and had nothing to share publicly. The double layer of protection -- the kill bit update from two weeks ago and yesterday's IE update -- would protect users against all currently-known attacks, he argued.

Microsoft issued Tuesday's emergency updates to Visual Studio and IE in part because three other researchers are slated later today to demonstrate a way for attackers to bypass the company's kill-bit defenses.

Join the Good Gear Guide newsletter!

Error: Please check your email address.

Tags hackersexploits and vulnerabilitiesMicrosoftactivexInternet Explorer

Our Back to Business guide highlights the best products for you to boost your productivity at home, on the road, at the office, or in the classroom.

Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.

Gregg Keizer

Computerworld
Show Comments

Most Popular Reviews

Latest News Articles

Resources

PCW Evaluation Team

Azadeh Williams

HP OfficeJet Pro 8730

A smarter way to print for busy small business owners, combining speedy printing with scanning and copying, making it easier to produce high quality documents and images at a touch of a button.

Andrew Grant

HP OfficeJet Pro 8730

I've had a multifunction printer in the office going on 10 years now. It was a neat bit of kit back in the day -- print, copy, scan, fax -- when printing over WiFi felt a bit like magic. It’s seen better days though and an upgrade’s well overdue. This HP OfficeJet Pro 8730 looks like it ticks all the same boxes: print, copy, scan, and fax. (Really? Does anyone fax anything any more? I guess it's good to know the facility’s there, just in case.) Printing over WiFi is more-or- less standard these days.

Ed Dawson

HP OfficeJet Pro 8730

As a freelance writer who is always on the go, I like my technology to be both efficient and effective so I can do my job well. The HP OfficeJet Pro 8730 Inkjet Printer ticks all the boxes in terms of form factor, performance and user interface.

Michael Hargreaves

Windows 10 for Business / Dell XPS 13

I’d happily recommend this touchscreen laptop and Windows 10 as a great way to get serious work done at a desk or on the road.

Aysha Strobbe

Windows 10 / HP Spectre x360

Ultimately, I think the Windows 10 environment is excellent for me as it caters for so many different uses. The inclusion of the Xbox app is also great for when you need some downtime too!

Mark Escubio

Windows 10 / Lenovo Yoga 910

For me, the Xbox Play Anywhere is a great new feature as it allows you to play your current Xbox games with higher resolutions and better graphics without forking out extra cash for another copy. Although available titles are still scarce, but I’m sure it will grow in time.

Featured Content

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?