CVE-2026-77470: Lychee: Webshop checkout lets the client override the payment `amount` sent to the gateway via malicious crafted POST request
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 additionaldata 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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Lycheeto a version that resolves this vulnerability.Fixed in 7.7.1
Event History
Frequently Asked Questions
Which deployments are exposed to exploitation?
Deployments running Lychee before 7.7.1 are exposed only if the Supporter or Pro webshop is enabled, at least one item can be purchased, and the configured payment integration is an affected non-PayPal Omnipay gateway.
Does an attacker need an account or other prior access?
No. An unauthenticated buyer can exploit the checkout process by sending a crafted POST request to /api/v2/Shop/Checkout/Process.
What can an attacker alter in a crafted checkout request?
The attacker can override payment parameters including amount, currency, returnUrl, cancelUrl, and transactionId. If the gateway accepts the modified request, this can result in successful payment for an attacker-selected amount and automatic fulfillment of goods.
What should be done if the webshop cannot be upgraded immediately?
The provided information identifies an enabled webshop, purchasable items, and an affected non-PayPal Omnipay gateway as required conditions. Disabling the webshop or preventing purchases removes those stated exploitation prerequisites until upgrading to 7.7.1.