Description
Puma is a Ruby/Rack web server built for parallelism. From 5.5.0 until 7.2.1 and 8.0.2, Puma is vulnerable to source IP spoofing when set_remote_address proxy_protocol: :v1 is enabled and persistent connections are used because Puma incorrectly re-parses PROXY protocol headers after each keep-alive request on the same connection, allowing an attacker to inject a second PROXY header and overwrite REMOTE_ADDR. This issue is fixed in versions 7.2.1 and 8.0.2.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| puma | puma | >= 5.5.0, < 7.2.1, >= 8.0.0, < 8.0.2 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | puma | 8.0.2-1 | — |
| Debian 13 | puma | No fix yet | — |
| Debian 12 | puma | 5.6.5-3+deb12u2 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | puma | No fix yet | — |
| Ubuntu 26.04 LTS | puma | No fix yet | — |
| Ubuntu 24.04 LTS | puma | No fix yet | — |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 22.04 LTS | puma | No fix yet | — |
| Ubuntu Pro 20.04 LTS | puma | No fix yet | — |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | logstash-9.3 +1 | 9.3.7-r0 | — |
| Wolfi rolling | logstash-9.4 +1 | 9.4.4-r0 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| RubyGems | puma | >= 8.0.0, < 8.0.2 | 8.0.2 | GHSA-2vqw-3mp8-cgmx |
| RubyGems | puma | >= 5.5.0, < 7.2.1 | 7.2.1 | GHSA-2vqw-3mp8-cgmx |
References
- https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx
- https://github.com/puma/puma/pull/3944
- https://github.com/puma/puma/pull/3947
- https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f
- https://github.com/puma/puma/commit/ebe9db3929ab8299d19c8f5b41e8ef4f4b22fa58
- https://github.com/puma/puma/releases/tag/v7.2.1
- https://github.com/puma/puma/releases/tag/v8.0.2