diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock
index 098d2b18f2e4..1c22d7d1b679 100644
--- a/Cargo.Bazel.json.lock
+++ b/Cargo.Bazel.json.lock
@@ -1,5 +1,5 @@
 {
-  "checksum": "76e51ba4f0a9cd9d1eece5abd2ecd00b308907d26af0bc3b1cccaa337e99d1af",
+  "checksum": "0b2ff2af8892a5691db30253453eaf3804fc1a00ee76e7a0a299c4121c8df948",
   "crates": {
     "actix-codec 0.5.1": {
       "name": "actix-codec",
diff --git a/bazel/rules_rust_dep_env.patch b/bazel/rules_rust_dep_env.patch
deleted file mode 100644
index fa217682dc3c..000000000000
--- a/bazel/rules_rust_dep_env.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-# Fix cross-crate DEP_* env vars: rules_rust 0.71.x redacts the producer's out_dir
-# to a generic ${out_dir} token in dep env files, but those files are consumed by
-# downstream crates' build scripts whose --out-dir differs, leaving the token
-# unresolved (e.g. libssh2-sys failing to find zlib.h from libz-sys's DEP_Z_INCLUDE).
-# Upstream issue: the 'env files are only consumed by the direct owner' assumption
-# in redact_paths() does not hold for outputs_to_dep_env().
-# Fixed upstream by https://github.com/bazelbuild/rules_rust/pull/4124:
-# drop this patch when upgrading to a release that includes it.
-diff --git a/cargo/private/cargo_build_script_runner/lib.rs b/cargo/private/cargo_build_script_runner/lib.rs
---- a/cargo/private/cargo_build_script_runner/lib.rs
-+++ b/cargo/private/cargo_build_script_runner/lib.rs
-@@ -181,7 +181,7 @@
-         outputs: &[BuildScriptOutput],
-         crate_links: &str,
-         exec_root: &str,
--        out_dir: &str,
-+        _out_dir: &str,
-     ) -> String {
-         let prefix = format!("DEP_{}_", crate_links.replace('-', "_").to_uppercase());
-         outputs
-@@ -191,7 +191,12 @@
-                     Some(format!(
-                         "{}{}",
-                         prefix,
--                        Self::escape_for_serializing(Self::redact_paths(env, exec_root, out_dir))
-+                        // Do NOT redact the producer's out_dir to the generic `${out_dir}`
-+                        // token here: DEP_* env vars are consumed by *downstream* crates'
-+                        // build scripts, whose process_wrapper `--out-dir` points to a
-+                        // different directory, so the token would resolve incorrectly
-+                        // (or not at all). Only the exec root is safe to substitute.
-+                        Self::escape_for_serializing(Self::redact_exec_root(env, exec_root))
-                     ))
-                 } else {
-                     None
diff --git a/bazel/rust.MODULE.bazel b/bazel/rust.MODULE.bazel
index 8aa916d574bd..407d7e2d1efd 100644
--- a/bazel/rust.MODULE.bazel
+++ b/bazel/rust.MODULE.bazel
@@ -5,18 +5,17 @@
 bazel_dep(name = "rules_rust", version = "0.71.3")
 archive_override(
     module_name = "rules_rust",
-    integrity = "sha256-h8txtdi9xcNfgjdTBYX+R9CEsxKDucJx+OPvezmkTQM=",
+    integrity = "sha256-Suf3ncbfLjBtDNj/zlLmQzmooL5+fOfRex73QEvqtuI=",
     patch_strip = 1,
     patches = [
         # Configure per-compilation-mode strip levels, which the native
         # `rust.toolchain` tag's flat `strip_level` string_dict cannot express
         # (https://github.com/bazelbuild/rules_rust/issues/3730).
         "//bazel:rules_rust_strip_level.patch",
-        # Fix cross-crate DEP_* env vars being redacted to an `${out_dir}` token
-        # that downstream crates' build scripts cannot resolve (see patch header).
-        "//bazel:rules_rust_dep_env.patch",
     ],
-    urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.71.3/rules_rust-0.71.3.tar.gz"],
+    strip_prefix = "rules_rust-5f04c8c14c2ffacfe10ad14e55298be21454be04",
+    type = "tar.gz",
+    urls = ["https://codeload.github.com/bazelbuild/rules_rust/tar.gz/5f04c8c14c2ffacfe10ad14e55298be21454be04"],
 )
 
 rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
diff --git a/rs/pocket_ic_server/BUILD.bazel b/rs/pocket_ic_server/BUILD.bazel
index 21c883c139d0..de87801380ea 100644
--- a/rs/pocket_ic_server/BUILD.bazel
+++ b/rs/pocket_ic_server/BUILD.bazel
@@ -266,7 +266,7 @@ MAINNET_NNS_CANISTER_ENV = {
         ] + glob([
             "src/state_api/**/*.rs",
         ]),
-        compile_data = EXTERNAL_CANISTER_DATA + nns_canister_data,
+        compile_data = EXTERNAL_CANISTER_DATA + nns_canister_data + ["templates/dashboard.html"],
         crate_name = "pocket_ic_server",
         proc_macro_deps = [
             # Keep sorted.
