---
id: CVE-2026-77972
title: >-
  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 addre…
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 addre…
severity: critical
cvss: 9
cvssVector: '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'
cwe:
  - CWE-367
vendor: Slab
product: safeurl
affected:
  - safeurl >= 0.1.0 < *
  - slab/safeurl-elixir >= feabbd0a13f83028ab24b71710526e9da9841f70 < *
published: '2026-09-15'
updated: '2026-09-21'
sourceUpdated: '2026-09-21T19:17:11.153'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-77972'
references:
  - url: 'https://cna.erlef.org/cves/CVE-2026-77972.html'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/slab/safeurl-elixir/commit/feabbd0a13f83028ab24b71710526e9da9841f70
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: 'https://osv.dev/vulnerability/EEF-CVE-2026-77972'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
tags:
  - nvd
  - cve.org
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-21T18:44:04.900610Z'
cvssSource: cna
epss: 0.00317
epssPercentile: 0.24855
ingestedAt: '2026-09-15T16:40:03.390Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
