Lychee: Webshop checkout lets the client override the payment `amount` sent to the gateway via malicious crafted POST request
What fixes it
No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.
Description
Lychee is a free, open-source photo-management tool. Prior to 7.7.1, the Supporter or Pro webshop POST /api/v2/Shop/Checkout/Process flow accepts an unrestricted additional_data array and CheckoutService::preparePurchaseParameters() merges it after server-computed purchase parameters. Because later string keys overwrite earlier keys, an unauthenticated buyer can replace amount, currency, returnUrl, cancelUrl, or transactionId before CheckoutService::processPayment() passes the parameters to a non-PayPal Omnipay gateway. An attacker can therefore make a gateway accept a successful payment for an attacker-selected amount and obtain auto-fulfilled goods while underpaying the merchant. The issue requires an enabled webshop, a purchasable item, and an affected Omnipay gateway. This issue is fixed in version 7.7.1.
Text from CVE List
Affected versions 2
- Lycheeaffected: < 7.7.1CVE List
- lychee-org/lychee, composer<= 7.7.0GitHub