There was some talk on the
dev list that RIPEMD-160 used in P2SH could be a weakness (segregated witness will use 32 bytes rather than just 20). If two parties are creating the output together, then the last party to change the output script can create a hash collision with 'only' ~2
80 operations.
All the other security in Bitcoin is supposed to be at the 2
128 level.
For example, imagine Alice and Eve are creating a 2 of 2 multisig output. Alice sends her public key to Eve. Eve has to send back her public key to Alice, so they can form the 2 of 2 multisig.
Instead, Eve tries to find a hash collision where two different scripts hash to the same value.
OP_2 <Alice's public key> <Eve's fake public key> OP_2 CHECKMULTISIG
and
<20 bytes of random data> OP_DROP <Eve's real public key> CHECKSIG
Due to the birthday paradox, finding the collision only takes the square root of the search space, so 2
160 becomes ~2
80.
Eve sends the fake public key from the first output to Alice and Alice checks everything and doesn't see anything wrong. Once Alice signs the transaction, Eve can use the other version of the output to claim the funds, since they both hash to the same P2SH value.
In practice, this isn't that big a deal, since 2
80 operations is massive and Eve has to do it which Alice is waiting for a reply.
Just to be clear, this attack doesn't have any effect on RIPEMD-160 as it is used currently. If only one person is creating the key, as with most outputs Today, then it has the full 2
160 bits of security.