CVE-2026-47737: Ruby Puma Proxy Protocol Spoofing

Puma resets the proxy protocol parsing flag on every request over a persistent connection. This allows an attacker to inject a second PROXY protocol header in a subsequent keep-alive request, overwriting the connection's REMOTE_ADDR metadata and leading to IP spoofing. The fix ensures PROXY parsing only occurs on the first request (`@requests_served.zero?`).

Provally CuratedPublic repositoryHighMedium confidenceVerifiedApache-2.0Ruby
greprules fetch cve-2026-47737-ruby-puma-proxy-protocol-spoofing --engine opengrep

Description

Puma resets the proxy protocol parsing flag on every request over a persistent connection. This allows an attacker to inject a second PROXY protocol header in a subsequent keep-alive request, overwriting the connection's REMOTE_ADDR metadata and leading to IP spoofing. The fix ensures PROXY parsing only occurs on the first request (`@requests_served.zero?`).