Katalog CVE

CVE-2026-70658

WysokieCVSS 7.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.58%

Percentyl 46 - wyżej niż 46% wszystkich znanych CVE

Streszczenie

W bibliotece Pay (Ruby on Rails) przed wersją 11.6.2 kontroler Pay::Webhooks::PaddleBillingController porównuje HMAC SHA-256 z tokenem h1 z nagłówka Paddle-Signature przy użyciu String#==, co umożliwia atakującemu odtworzenie poprawnego podpisu na podstawie pomiarów czasu. Sfałszowany webhook może zmienić stan rozliczeń, aktywować płatne funkcje lub wywołać powiadomienia.

Ocena ryzyka

Nieuwierzytelniony zdalny atakujący może sfałszować webhooki Paddle, prowadząc do nieautoryzowanych zmian w rozliczeniach, aktywacji płatnych funkcji lub wycieku danych klientów.

Rekomendacja

Zaktualizuj bibliotekę Pay do wersji 11.6.2, która zastępuje porównanie String#== bezpiecznym porównaniem odpornym na ataki czasowe.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS