eef-cve-2026-77972
CVSS 9.0 osv_hex## Summary Time-of-check Time-of-use (TOCTOU) Race Condition in Slab safeurl allows an attacker who controls a hostname's DNS responses to reach internal network destinations that validation rejected. Validation returns a verdict and not the address it approved, so the HTTP clients the library ships receive the original hostname and resolve it a second time when the request is made. An attacker who controls the authoritative DNS for a name can answer the first lookup with a permitted address and the second with a blocked one, and the request then reaches a destination validation never approved. The same window opens without an attacker whenever a name legitimately resolves to different addresses across lookups, such as short record lifetimes or rotation between several addresses. This issue affects safeurl: from 0.1.0 onward.
- Published
- unknown
- Last Modified
- unknown
CVSS details not available.
No product information available.
No linked vulnerabilities found.
{
"affected": [
{
"database_specific": {
"source": "https://cna.erlef.org/osv/EEF-CVE-2026-77972.json"
},
"package": {
"ecosystem": "Hex",
"name": "safeurl",
"purl": "pkg:hex/safeurl"
},
"ranges": [
{
"events": [
{
"introduced": "0.1.0"
}
],
"type": "SEMVER"
}
],
"versions": [
"0.1.0",
"0.2.0",
"0.3.0",
"0.3.1",
"1.0.0"
]
},
{
"database_specific": {
"source": "https://cna.erlef.org/osv/EEF-CVE-2026-77972.json"
},
"ranges": [
{
"events": [
{
"introduced": "feabbd0a13f83028ab24b71710526e9da9841f70"
}
],
"repo": "https://github.com/slab/safeurl-elixir",
"type": "GIT"
}
],
"versions": [
"v1.0.0",
"v0.3.1",
"v0.3.0",
"v0.2.0",
"v0.1.0"
]
}
],
"aliases": [
"CVE-2026-77972"
],
"credits": [
{
"name": "Jonatan Männchen / EEF",
"type": "REPORTER"
},
{
"name": "Jonatan Männchen / EEF",
"type": "COORDINATOR"
}
],
"database_specific": {
"capec_ids": [
"CAPEC-664"
],
"cpe_ids": [
"cpe:2.3:a:slab:safeurl:*:*:*:*:*:*:*:*"
],
"cwe_ids": [
"CWE-367"
]
},
"details": "## Summary\n\nTime-of-check Time-of-use (TOCTOU) Race Condition in Slab safeurl allows an attacker who controls a hostname's DNS responses to reach internal network destinations that validation rejected.\n\nValidation returns a verdict and not the address it approved, so the HTTP clients the library ships receive the original hostname and resolve it a second time when the request is made. An attacker who controls the authoritative DNS for a name can answer the first lookup with a permitted address and the second with a blocked one, and the request then reaches a destination validation never approved. The same window opens without an attacker whenever a name legitimately resolves to different addresses across lookups, such as short record lifetimes or rotation between several addresses.\n\nThis issue affects safeurl: from 0.1.0 onward.",
"id": "EEF-CVE-2026-77972",
"modified": "2026-09-15T15:45:03.321931831Z",
"published": "2026-09-15T15:37:49.948Z",
"references": [
{
"type": "WEB",
"url": "https://cna.erlef.org/cves/CVE-2026-77972.html"
},
{
"type": "WEB",
"url": "https://github.com/slab/safeurl-elixir/commit/feabbd0a13f83028ab24b71710526e9da9841f70"
},
{
"type": "PACKAGE",
"url": "https://hex.pm/packages/safeurl"
}
],
"schema_version": "1.9.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:H/SI:L/SA:N",
"type": "CVSS_V4"
}
],
"summary": "safeurl validated address is not bound to the request, allowing DNS rebinding"
}