diff --git a/codex-rs/Cargo.lock b/codex-rs/Cargo.lock
index 023c5dfaa366..dc109aeabadb 100644
--- a/codex-rs/Cargo.lock
+++ b/codex-rs/Cargo.lock
@@ -3620,6 +3620,7 @@ dependencies = [
"codex-utils-home-dir",
"codex-utils-rustls-provider",
"globset",
+ "hickory-proto",
"pretty_assertions",
"rama-core",
"rama-http",
diff --git a/codex-rs/Cargo.toml b/codex-rs/Cargo.toml
index 7b153dfaa0b7..bc4330731d17 100644
--- a/codex-rs/Cargo.toml
+++ b/codex-rs/Cargo.toml
@@ -322,6 +322,7 @@ gethostname = "1.1.0"
gix = { version = "0.81.0", default-features = false, features = ["sha1"] }
glob = "0.3"
globset = "0.4"
+hickory-proto = { version = "0.25.2", default-features = false, features = ["std"] }
hmac = "0.12.1"
http = "1.3.1"
httpdate = "1.0.3"
diff --git a/codex-rs/network-proxy/Cargo.toml b/codex-rs/network-proxy/Cargo.toml
index d1d2a72ce323..1e7152fde99f 100644
--- a/codex-rs/network-proxy/Cargo.toml
+++ b/codex-rs/network-proxy/Cargo.toml
@@ -21,6 +21,7 @@ codex-utils-absolute-path = { workspace = true }
codex-utils-home-dir = { workspace = true }
codex-utils-rustls-provider = { workspace = true }
globset = { workspace = true }
+hickory-proto = { workspace = true }
rand = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
diff --git a/codex-rs/network-proxy/src/attribution.rs b/codex-rs/network-proxy/src/attribution.rs
index f526460fd622..f9260473f6da 100644
--- a/codex-rs/network-proxy/src/attribution.rs
+++ b/codex-rs/network-proxy/src/attribution.rs
@@ -72,16 +72,19 @@ where
}
async fn read_attribution_token(stream: &mut TcpStream) -> Result