- There are permission checks
- The user has to be logged in to GWT
- The user has to have access to this page
- The user has to be the owner of the siteUrl
After all those permission checks, it might appear that everything was covered. It's just one little omission, verifying that the urlt parameter corresponds to a page within the siteUrl website, that was missed.
[1] http://consumerist.com/2011/06/how-hackers-stole-200000-citi...
Most of the time when people say "what a stupid mistake" they mean "that's a mistake I haven't made yet"
Sometimes testers use the shotgun approach, and things get missed. It can help to write exhaustive tests (you have a computer, right?) and try everything. But the problem space has to be orderly, orthogonal, something that can be spanned. This bug is in a pretty small problem space - an API with many dimensions (arguments), external dependencies. I'm not at all surprised something got thru.