main

Lessons learned from the Animated Cursor Security Bug

Daniel Fleshbourne   on 27 April 2007 - 12:06 · 9 comments & 3460 views

Advertisement (Why?)
Michael Howard here. A core tenet of the SDL is to take and incorporate lessons learned when we issue a security update, and there is a great deal to learn from the recent animated cursor bug, MS07-017, so I want to spend a few minutes to go over some of the things we have learned from this bug.

First of all, this code is pretty old; is in Windows 2000, and predates the SDL. The SDL has parts (i.e., design review, threat modeling, testing, and security push) that focus on the product as a whole, and parts (i.e., code review and use of tools) that are focused on code. In the Windows Vista process, we banned certain APIs, like strcpy and strncpy, and changed well over 140,000 calls to use safer calls. memcpy wasn’t on that list. We also built in a lot of defense-in-depth measures because we know that the SDL can’t catch everything. Let’s start by looking at some of the defense-in-depth measures we have in place that didn’t stop the threat

View: The full story
News source: MSDN Blog

Post a comment · Send to friend Comments · There are 9 additional comments
#1 dugbug on 27 Apr 2007 - 13:41
Nice read
(1 reply) #2 [deXter] on 27 Apr 2007 - 14:33
Lesson 1: Even using Firefox won't save you from such exploits. Use Opera!
#2.1 ichi on 27 Apr 2007 - 15:33
Better yet: use lynx!
#3 Sawyer12 on 27 Apr 2007 - 15:28
Why was memcpy not included in the safer functions list?
#4 blackcat77 on 27 Apr 2007 - 16:11
I had ME and it simply didn't work. Vista might not be earth-shaking, but it works just fine. Seems like every time MS stubs it's toe, there are a lot of people ready to write their obituary.
#5 hapbt on 27 Apr 2007 - 16:55
Seems like talking about ME has nothing to do with anything in this article...
(2 replies) #6 zivan56 on 27 Apr 2007 - 16:57
Almost every single *nix os has memcpy, strcpy, strncpy, etc and none of them have this issue. Why does Microsoft seem to?
#6.1 dev on 27 Apr 2007 - 17:01
it's how you use them, i dont see how strncpy is bad though, assuming you don't set the limit number higher than the buffer's size
#6.2 Andareed on 27 Apr 2007 - 19:17
Quote - (dev said @ #6.1)
it's how you use them, i dont see how strncpy is bad though, assuming you don't set the limit number higher than the buffer's size


strncpy does not automatically append a NULL-terminator to the destination in all cases.

Commenting has either been disabled on this article or you are not logged in. Click here to login or register, its free!

Note: Anonymous commenting is disabled in order to keep the quality of responses to a high standard.

Advertisement (Why?)