- Chasing the DAO Attacker’s Wake - "you cannot assume anything about the state of your contract after the external call is executed", and "do not call external contract code in your contract using Solidity’s call construct, ever if you can avoid it. If you can’t, do it last and understand that you lose all guarantees as to the program flow of your contract at that point".
- Analysis of the DAO exploit - this link provide a good analysis of the attack, including the method the attacker managed to repeatedly call
splitDAO(...)
by transferring away their The DAO tokens before their token balance is set to 0 and then transferring it back to repeat the attack. (Thanks@eth
for the answer in What was the second vulnerability used in The DAO attack on 17 June 2016?What was the second vulnerability used in The DAO attack on 17 June 2016?). - The big theDAO heist FAQ
- Deconstructing theDAO Attack: A Brief Code Tour
- Which accounts are involved in mounting the recursive call vulnerability attacks on The DAO?Which accounts are involved in mounting the recursive call vulnerability attacks on The DAO?
- Which split proposal was used to mount the recursive call vulnerability attack on The DAO?Which split proposal was used to mount the recursive call vulnerability attack on The DAO?
- How was the recursive call vulnerability attack conducted via proposal #59 when there were no Yes votes?How was the recursive call vulnerability attack conducted via proposal #59 when there were no Yes votes?
- Is there any way to determine how long it took for the DAO attacker to deploy the attack?Is there any way to determine how long it took for the DAO attacker to deploy the attack?
- Can I execute a contract function by sending a regular transaction to the contract?Can I execute a contract function by sending a regular transaction to the contract?
- How much computation can be done in a fallback function?How much computation can be done in a fallback function?
- Thinking About Smart Contract Security
- Smart Contract Security
- Scanning Live Ethereum Contracts for the "Unchecked-Send" Bug (from
@Roland Kofler
's answer in How did “the DAO” attack happen on 17 June 2016?How did “the DAO” attack happen on 17 June 2016?). - Thoughts on The DAO Hack (also from
@Roland Kofler
's answer in How did “the DAO” attack happen on 17 June 2016?How did “the DAO” attack happen on 17 June 2016?).