Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-70658— pay-rails/pay: non-constant-time HMAC comparison in Paddle Billing webhook signature verifier

Quick assessment

Affected
pay-rails pay
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Pay是Pay组织开源的一款提供支付交易处理能力的软件组件。 Pay 11.6.2之前版本存在侧信道信息泄露漏洞,该漏洞源于Pay::Webhooks::PaddleBillingController#valid_signature?使用Ruby String#==将计算的64字符SHA-256 HMAC与来自Paddle-Signature标头的攻击者可控h1令牌进行比较,未经身份验证的远程攻击者可通过反复提交请求并获取精确的时间差异,推断匹配的摘要前缀并恢复有效签名,伪造的webhook经Pay::W

CVSS 7.4 · High EPSS 0.50% · P42

Affected Version Matrix 1

VendorProduct Version RangeStatus
pay-rails pay < 11.6.2 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-70658

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
pay-rails/pay: non-constant-time HMAC comparison in Paddle Billing webhook signature verifier
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
通过时间差异性导致的信息暴露
Source: CVE Program / CVE List V5
Vulnerability Title
Pay 侧信道信息泄露漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Pay是Pay组织开源的一款提供支付交易处理能力的软件组件。 Pay 11.6.2之前版本存在侧信道信息泄露漏洞,该漏洞源于Pay::Webhooks::PaddleBillingController#valid_signature?使用Ruby String#==将计算的64字符SHA-256 HMAC与来自Paddle-Signature标头的攻击者可控h1令牌进行比较,未经身份验证的远程攻击者可通过反复提交请求并获取精确的时间差异,推断匹配的摘要前缀并恢复有效签名,伪造的webhook经Pay::W
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
pay-rails pay < 11.6.2 -

II. Public POCs for CVE-2026-70658

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-70658

登录查看更多情报信息。

Patches & Fixes for CVE-2026-70658 (1)

Vendor Advisories for CVE-2026-70658 (1)

Vendor Pages for CVE-2026-70658 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-70658

No comments yet


Leave a comment