lib/thin/connection.rb in Thin web server before 1.2.4 relies on the X-Forwarded-For…
Priority LOW 36CWE-20Published · Updated
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- — Not recorded in CVSS 2.0
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- Partial · Partial · Partial
- Fix status
- Fixed
Attack profile from CVSS 2.0 · NVD. Fix status from CNA and GitHub.
Summary
lib/thin/connection.rb in Thin web server before 1.2.4 relies on the X-Forwarded-For header to determine the IP address of the client, which allows remote attackers to spoof the IP address and hide activities via a modified X-Forwarded-For header.
Why it matters now
EPSS 0.01382 72nd percentileScored 2026-11-07
Fix Fixed thin (RubyGems): 1.2.4
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | — | all versions | — | No fix listed | CNA |
| — | thin (RubyGems) | before 1.2.4 | 1.2.4 | Patch available | GHSA-j24p-r6wx-r79w |
- — Vendor— Affected all versions Fixed in — No fix listed CNA
- thin (RubyGems) Vendor— Affected before 1.2.4 Fixed in 1.2.4 Patch available GHSA-j24p-r6wx-r79w
CPE configurations NVD · 21
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:macournoyer:thin:*:*:*:*:*:*:*:* | up to 1.2.2 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.4.0:*:*:*:*:*:*:* | 0.4.0 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.4.1:*:*:*:*:*:*:* | 0.4.1 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.5.0:*:*:*:*:*:*:* | 0.5.0 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.5.1:*:*:*:*:*:*:* | 0.5.1 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.5.2:*:*:*:*:*:*:* | 0.5.2 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.5.3:*:*:*:*:*:*:* | 0.5.3 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.5.4:*:*:*:*:*:*:* | 0.5.4 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.6.0:*:*:*:*:*:*:* | 0.6.0 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.6.3:*:*:*:*:*:*:* | 0.6.3 | Vulnerable | Macournoyer |
- cpe:2.3:a:macournoyer:thin:*:*:*:*:*:*:*:* Versions up to 1.2.2 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.4.0:*:*:*:*:*:*:* Versions 0.4.0 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.4.1:*:*:*:*:*:*:* Versions 0.4.1 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.5.0:*:*:*:*:*:*:* Versions 0.5.0 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.5.1:*:*:*:*:*:*:* Versions 0.5.1 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.5.2:*:*:*:*:*:*:* Versions 0.5.2 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.5.3:*:*:*:*:*:*:* Versions 0.5.3 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.5.4:*:*:*:*:*:*:* Versions 0.5.4 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.6.0:*:*:*:*:*:*:* Versions 0.6.0 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.6.3:*:*:*:*:*:*:* Versions 0.6.3 Vulnerable ·Macournoyer
Show 11 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:macournoyer:thin:0.6.4:*:*:*:*:*:*:* | 0.6.4 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.7.0:*:*:*:*:*:*:* | 0.7.0 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.7.1:*:*:*:*:*:*:* | 0.7.1 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.8.0:*:*:*:*:*:*:* | 0.8.0 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.8.1:*:*:*:*:*:*:* | 0.8.1 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:0.8.2:*:*:*:*:*:*:* | 0.8.2 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:1.0.0:*:*:*:*:*:*:* | 1.0.0 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:1.1.0:*:*:*:*:*:*:* | 1.1.0 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:1.1.1:*:*:*:*:*:*:* | 1.1.1 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:1.2.0:*:*:*:*:*:*:* | 1.2.0 | Vulnerable | Macournoyer |
| cpe:2.3:a:macournoyer:thin:1.2.1:*:*:*:*:*:*:* | 1.2.1 | Vulnerable | Macournoyer |
- cpe:2.3:a:macournoyer:thin:0.6.4:*:*:*:*:*:*:* Versions 0.6.4 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.7.0:*:*:*:*:*:*:* Versions 0.7.0 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.7.1:*:*:*:*:*:*:* Versions 0.7.1 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.8.0:*:*:*:*:*:*:* Versions 0.8.0 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.8.1:*:*:*:*:*:*:* Versions 0.8.1 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:0.8.2:*:*:*:*:*:*:* Versions 0.8.2 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:1.0.0:*:*:*:*:*:*:* Versions 1.0.0 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:1.1.0:*:*:*:*:*:*:* Versions 1.1.0 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:1.1.1:*:*:*:*:*:*:* Versions 1.1.1 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:1.2.0:*:*:*:*:*:*:* Versions 1.2.0 Vulnerable ·Macournoyer
- cpe:2.3:a:macournoyer:thin:1.2.1:*:*:*:*:*:*:* Versions 1.2.1 Vulnerable ·Macournoyer
Remediation
- Fix · GHSA-j24p-r6wx-r79w thin (RubyGems) Fixed in 1.2.4 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2009-3287
- 2026-10-03 Alias added: GHSA-j24p-r6wx-r79w
References
Advisory 2
Sources
- CVE-2009-3287 · CVE Program
- CVE-2009-3287 · NVD
- FIRST EPSS
- GHSA-j24p-r6wx-r79w · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences