CVE-2018-3759 json
private_address_check contains race condition
published 2018-06-13 8 y ago modified 2026-06-17 4 mo ago also GHSA-2xvj-j3qh-x8c3 , EUVD-2018-0210
- cvss
- 3.7
- version 3.0, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 52%
- public exploits
- 0
- none known
Summary
private_address_check ruby gem before 0.5.0 is vulnerable to a time-of-check time-of-use (TOCTOU) race condition due to the address the socket uses not being checked. DNS entries with a TTL of 0 can trigger this case where the initial resolution is a public address but the subsequent resolution is a private address.
Patch / fix
- rubygems private_address_check 0.5.0
- private_address_check_project private_address_check 0.5.0
Exploit prediction
0.68% chance of exploitation in the next 30 days, higher than 52% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.0 | 3.7 | CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N |
| NVD | 2.0 | 4.3 | AV:N/AC:M/Au:N/C:P/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| rubygems | private_address_check | <0.5.0 |
0.5.0 |
Affected products
- HackerOne private_address_check ruby gem
Classification
- Weakness
-
- CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization
References
-
github.com
/jtdowney/private_address_check/commit/4068228187db87fea7577f7020099399772bb147
web, patch, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2018-3759
advisory
-
github.com
/advisories/GHSA-2xvj-j3qh-x8c3
advisory
-
github.com
/jtdowney/private_address_check
package
-
github.com
/rubysec/ruby-advisory-db/blob/master/gems/private_address_check/CVE-2018-3759.yml
web
Sources
- CVE List CVE-2018-3759
- GitHub Advisory GHSA-2xvj-j3qh-x8c3
- NVD CVE-2018-3759
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.