Ethcore blogpost does a good job at describing the history of the hack. Basically they knew about the vulnerability two days before the attack and fixed the function that they though was affected. Read more here slock.it blog.
From the guy who wrote about the vulnerability before the attack:
I wrote up this vulnerability last week: you can read more about it at my blog. In simple words, it's like the bank teller doesn't change your balance until she has given you all the money you requested. "Can I withdraw $500? Wait, before that, can I withdraw $500?"
And so on. The smart contracts as designed only check you have $500 at the beinning, once, and allow themselves to be interrupted.
The blog post he mentions can be found here.