I was researching the msg object and I could not find out very much about how it is created. It seems to be that contracts depend on checking owner == msg.sender. That is dependent on msg.sender being secure.
Could someone simply alter msg.sender in an hacking attempt? How is the object actually transmitted?
It seems to me the point of any communication of data from one point to another will depend on somekind check at both ends that the data has not been changed.
If someone could change msg.sender then they could simply destroy many contracts or pretend to be the owner and mint new tokens.
I saw this - http://solidity.readthedocs.io/en/develop/security-considerations.html
It refers to hacking the slots when the full 32 bytes are not used. I think msg.sender uses the full slot anyway, so that is not an issue.