There is a sort of anmoying play attack vulnerability in payjoin.
If I am Alice and I want to send coins to Bob, Bob will contribute one of his outputs to the tx inputs. At some point Bob needs to provide his full partial offset to Alice (The opposite, Alice sending her partial offset to Bob, is not secure at all). She can stop at that point the transaction.
And she can use Bob input later and play the partial excess of Bob. The values of this play transaction will not balance out since Bob contributed less coins than what he wanted to receive (from Alice) but Alice can use any of her utxos, add it to her tx inputs, and adjust the partial offset of Bob by the blinding factor of this utxo and she can play Bob orginal tx input.
This does not allow the theft of coins but that concretely and directly put the weight on users and wallet developers by providing them a bad and not relaxing potential experience
Basically each time Alice aborts the transaction, Bob would need to spend his utxo to make sure Alice doesn’t play it using Bob’s partial excess and partial offset.
Important note:
This vulnerability does not exist in case of multi party transactions where the number of parties is equal or greater than 3. The reason is that there is in this case an easy method to exchange partial offsets without any party learns about any other party’s partial offset, making the play vulnerability discribed above impossible if no parties are colluding

