🇰🇷 한글 설명
Paymenter 1.5.1 미만 버전의 결제 컴포넌트에서 URL 쓰기 가능한 속성에 대한 필터링 미흡으로 인해 발생합니다. 인증된 사용자가 서버 프로비저닝 매개변수에 임의의 키-값 쌍을 주입하여 관리자가 설정한 호스팅 플랜 및 리소스 제한을 우회할 수 있습니다.
💡 쉬운 설명
쇼핑몰 결제 과정에서 주소를 조작해 원래 가격보다 더 좋은 사양의 서버를 마음대로 설정할 수 있는 보안 결함입니다. 일반 사용자가 관리자 권한 없이도 CPU나 메모리 같은 서버 자원을 임의로 늘릴 수 있습니다.
🇺🇸 원문 (English)
Paymenter is a free and open-source webshop solution for management of hosting services. In versions prior to 1.5.1, the checkout component improperly filters URL-writable properties, allowing authenticated users to inject arbitrary key-value pairs into server provisioning parameters. Because bundled server extensions prioritize these user-supplied properties over administrator-defined configurations, a regular user can override hosting plans and resource limits at checkout without special privileges. The Checkout Livewire component's $checkoutConfig property exposed via URL query parameters, only validating keys explicitly defined by an extension's configuration method, allowing any undefined injected keys to bypass validation entirely. These unsanitized keys are then stored directly in the database by the cart component and later passed to server extensions during provisioning, enabling user-injected data to override intended administrator settings. Depending on the active extension, this leads to unauthorized overrides of core resource limits (such as CPU, RAM, storage, or package tiers). No administrative privileges are required to exploit this vulnerability. This issue has been fixed in version 1.5.1.
📍 영향받는 시스템
Paymenter 1.5.1 미만 모든 버전
⚔️ 공격 벡터
결제 단계의 Livewire 컴포넌트 URL 쿼리 파라미터에 검증되지 않은 키-값 쌍을 주입하여 공격
🛡️ 대응 방법
Paymenter를 최신 보안 패치가 적용된 1.5.1 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 정보가 1.5.1 미만인 경우 취약한 상태임
php artisan --version || composer show paymenter/paymenter | grep version