CVE-2015-7519 Phusion Passenger allows remote attackers to spoof headers
LowCVSS 3.7
EPSS 2.4%
PoC
- Published
- Updated
- Exploit status
- Proof-of-concept only
Description
agent/Core/Controller/SendRequest.cpp in Phusion Passenger before 4.0.60 and 5.0.x before 5.0.22, when used in Apache integration mode or in standalone mode without a filtering proxy, allows remote attackers to spoof headers passed to applications by using an _ (underscore) character instead of a - (dash) character in an HTTP header, as demonstrated by an X_User header.
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| rubygems passenger(RubyGems) | < 4.0.60 | 4.0.60 |
| rubygems passenger(RubyGems) | >= 5.0.0, < 5.0.22 | 5.0.22 |
| rubygems passenger(RubyGems) | = 1.0.1 | No fix listed |
| rubygems passenger(RubyGems) | = 1.0.2 | No fix listed |
| rubygems passenger(RubyGems) | = 1.0.3 | No fix listed |
| rubygems passenger(RubyGems) | = 1.0.4 | No fix listed |
| rubygems passenger(RubyGems) | = 1.0.5 | No fix listed |
| rubygems passenger(RubyGems) | = 2.0.1 | No fix listed |
| rubygems passenger(RubyGems) | = 2.0.2 | No fix listed |
| rubygems passenger(RubyGems) | = 2.0.3 | No fix listed |
| rubygems passenger(RubyGems) | = 2.0.4 | No fix listed |
| rubygems passenger(RubyGems) | = 2.0.5 | No fix listed |
| rubygems passenger(RubyGems) | = 2.0.6 | No fix listed |
| rubygems passenger(RubyGems) | = 2.1.2 | No fix listed |
| rubygems passenger(RubyGems) | = 2.1.3 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.0 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.1 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.10 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.11 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.12 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.13 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.14 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.15 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.2 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.3 | No fix listed |
Show 137 more
| Product | Affected versions | Fixed in |
|---|---|---|
| rubygems passenger(RubyGems) | = 2.2.4 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.5 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.6 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.7 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.8 | No fix listed |
| rubygems passenger(RubyGems) | = 2.2.9 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.0 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.0.pre1 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.0.pre2 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.0.pre3 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.0.pre4 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.1 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.10 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.11 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.12 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.13 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.14 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.15 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.17 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.18 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.19 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.2 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.21 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.3 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.4 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.5 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.6 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.7 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.8 | No fix listed |
| rubygems passenger(RubyGems) | = 3.0.9 | No fix listed |
| rubygems passenger(RubyGems) | = 3.9.1.beta | No fix listed |
| rubygems passenger(RubyGems) | = 3.9.2.beta | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.0.rc4 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.0.rc6 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.1 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.10 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.13 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.14 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.16 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.17 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.18 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.19 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.2 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.20 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.21 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.23 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.24 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.25 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.26 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.27 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.28 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.29 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.3 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.30 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.31 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.32 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.33 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.34 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.35 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.36 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.37 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.38 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.39 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.4 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.40 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.41 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.42 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.43 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.44 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.45 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.46 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.48 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.49 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.5 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.50 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.51 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.52 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.53 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.55 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.56 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.57 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.58 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.59 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.6 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.7 | No fix listed |
| rubygems passenger(RubyGems) | = 4.0.8 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.1 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.10 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.11 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.13 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.14 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.15 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.16 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.17 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.18 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.19 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.2 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.20 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.21 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.3 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.4 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.5 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.6 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.7 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.8 | No fix listed |
| rubygems passenger(RubyGems) | = 5.0.9 | No fix listed |
| debian/passenger(Debian:12) | < 5.0.22-1 | 5.0.22-1 |
| debian/passenger(Debian:13) | < 5.0.22-1 | 5.0.22-1 |
| debian/passenger(Debian:14) | < 5.0.22-1 | 5.0.22-1 |
| phusionpassenger phusion passenger | <= 4.0.59 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.0 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.0-beta1 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.0-beta2 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.0-beta3 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.0-rc1 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.0-rc2 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.1 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.2 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.3 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.4 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.5 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.6 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.7 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.8 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.9 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.10 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.11 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.12 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.13 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.14 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.15 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.16 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.17 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.18 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.19 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.20 | No fix listed |
| phusionpassenger phusion passenger | = 5.0.21 | No fix listed |
References
- nvd.nist.gov third-party-advisory vendor-advisory
- github.com patch
- blog.phusion.nl vendor-advisory
- bugzilla.suse.com
- github.com vendor-advisory
- [debian-lts-announce] 20180627 [SECURITY] [DLA 1399-1] ruby-passenger security update mailing-list
- SUSE-SU-2015:2337 vendor-advisory
- [oss-security] 20151207 CVE-2015-7519: Phusion Passenger Header overwriting issue mailing-list
- [oss-security] 20151207 injecting environment variables into Phusion Passenger (CVE-2015-7519) mailing-list
- github.com exploit
- web.archive.org
- github.com product
- Debian Security Tracker CVE-2015-7519 vendor-advisory
- puppet.com
- bugs.debian.org issue-tracking