A high-severity security advisory (CVSS 7.4) for the pay-rails/pay Ruby gem reveals that the Paddle Billing webhook signature verifier uses Ruby's non-constant-time String#== operator to compare HMAC digests. This exposes a timing side channel (CWE-208) that allows an attacker to iteratively probe the /pay/webhooks/paddle_billing endpoint and recover the valid HMAC signature byte-by-byte. With a forged signature, an attacker can submit fake Paddle Billing webhook events (e.g. subscription.created, transaction.completed), potentially triggering unauthorized provisioning of paid features, false refund records, or fraudulent billing state changes. The fix is to replace String#== with a constant-time comparison such as OpenSSL.fixed_length_secure_compare or ActiveSupport::SecurityUtils.secure_compare. No patched version is currently available.