🇰🇷 한글 설명
Lychee 사진 관리 도구의 Supporter 또는 Pro 웹숍에서 결제 프로세스 중 발생하는 취약점입니다. 공격자가 결제 요청 시 임의의 데이터를 삽입하여 결제 금액, 통화, 리턴 URL 등을 조작할 수 있으며, 이를 통해 실제 금액보다 적게 지불하고 상품을 획득할 수 있습니다.
💡 쉬운 설명
쇼핑몰 결제 과정에서 해커가 가격 정보를 몰래 바꿔치기할 수 있는 문제입니다. 결과적으로 물건값을 아주 적게 내고도 정상적으로 구매가 완료되는 보안 허점이 존재합니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
Lychee (Supporter 또는 Pro 웹숍 기능 사용 시) 7.7.1 미만 버전
⚔️ 공격 벡터
결제 API(/api/v2/Shop/Checkout/Process) 호출 시 조작된 additional_data 배열을 전송하여 서버의 결제 파라미터를 덮어씀
🛡️ 대응 방법
Lychee를 최신 보안 패치가 적용된 버전 7.7.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 7.7.1보다 낮으면 취약한 상태이며, 7.7.1 이상이면 안전합니다.
curl -s http://<target_ip>/version.php | grep -E '7.7.1'
💻 영향받는 소프트웨어
Spring Cloud Gateway Server