Commerce Escrow
The module does not properly verify incoming messages from the payment service. Anyone could fake payment updates to mark unpaid orders as paid or cancel ongoing orders. They would not be able to view hidden information.
- Who could do thisAnyone visiting the site. No login needed.
- Does it apply to youAny site using this module.
- Has it been used in attacksNo sign of it.
- How urgentDrupal rates this moderately critical. Include it in your next routine update, within the month.
Tell your developerUpdate Commerce Escrow to 1.1.0.
For developers: what the fix changed
The fix secures webhook handling by adding a secret token to the webhook URL and introducing a custom access check in `EscrowController::access`. It also updates `EscrowController::webhook` to validate the payload and confirm events by fetching the transaction directly from the Escrow.com API.
README.md+15 −1commerce_escrow.post_update.php+28 −0 fixcommerce_escrow.routing.yml+7 −2 fixsrc/Controller/EscrowController.php+163 −20 fixsrc/Event/EscrowWebhookEvent.php+10 −1 fixsrc/Plugin/Commerce/PaymentGateway/EscrowGatewayInterface.php+32 −0 fixsrc/Plugin/Commerce/PaymentGateway/EscrowOffer.php+50 −0 fixsrc/Plugin/Commerce/PaymentGateway/EscrowPay.php+20 −0 fixsrc/Plugin/Commerce/PaymentGateway/EscrowTrait.php+74 −0 fix