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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-20",
"CWE-472",
"CWE-915"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77470.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "7.7.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "24e6e11f1da131ed20b192d7d7b7ca9084451a2f"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v7.7.1",
"range": [
{
"fixed": "24e6e11f1da131ed20b192d7d7b7ca9084451a2f"
}
],
"source": "REFERENCES_TAG"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "7.7.1"
}
],
"source": "DESCRIPTION"
}
]
}