🔍 CVE-2026-70658

7.4
CVSS Score
HIGH
2026-09-14
2026-09-30 19:09
✅ 완료

🇰🇷 한글 설명

Pay 라이브러리의 Paddle Billing 웹훅 처리 과정에서 문자열 비교 시 발생하는 타이밍 공격 취약점입니다. 공격자가 정밀한 시간 측정을 통해 유효한 HMAC 서명을 복구할 수 있으며, 이를 통해 위조된 웹훅을 전송하여 결제 상태를 조작할 수 있습니다.

💡 쉬운 설명

해커가 결제 확인 신호를 가짜로 만들어 보낼 수 있는 보안 구멍이 발견되었습니다. 이를 통해 돈을 내지 않고도 유료 기능을 사용하거나 결제 정보를 조작할 위험이 있습니다.

🇺🇸 원문 (English)

Pay is a payments engine for Ruby on Rails 6.0 and higher. Prior to 11.6.2, Pay::Webhooks::PaddleBillingController#valid_signature? in app/controllers/pay/webhooks/paddle_billing_controller.rb compares the computed 64-character SHA-256 HMAC with the attacker-controlled h1 token from the Paddle-Signature header using Ruby String#==. An unauthenticated remote attacker who can repeatedly submit requests to /pay/webhooks/paddle_billing and obtain sufficiently precise timing measurements can infer matching digest prefixes and recover a valid signature. A forged accepted webhook is enqueued through Pay::Webhooks::ProcessJob and can cause a host application to update billing state, provision paid features, record refunds, or trigger customer notifications. This issue is fixed in version 11.6.2.

📍 영향받는 시스템

Pay (Ruby on Rails 6.0 이상) 11.6.2 미만 버전

⚔️ 공격 벡터

웹훅 엔드포인트(/pay/webhooks/paddle_billing)에 대한 반복적인 요청을 통한 타이밍 공격(Timing Attack)

🛡️ 대응 방법

Pay 라이브러리를 11.6.2 버전 이상으로 업데이트하십시오.

🔧 검증 코드

출력된 Pay 라이브러리의 버전을 확인하여 11.6.2 미만인지 확인합니다.

Shell / Script
bundle info pay | grep 'Summary' || gem list pay

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

💻 영향받는 소프트웨어

Ruby on Rails