diff --git a/changes/bug25415 b/changes/bug25415
new file mode 100644
index 0000000000000000000000000000000000000000..ec851aee8ddaa13daec7241f6b7d430444a3dbc9
--- /dev/null
+++ b/changes/bug25415
@@ -0,0 +1,4 @@
+  o Major bugfixes (directory authority):
+    - Avoid a crash when testing router reachability on a router that could
+      have an ed25519 ID, but which does not. Fixes bug 25415; bugfix on
+      0.3.3.2-alpha.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 7ccce50bc54c0f94fee62254533d46b58c4fb9a3..7a693b9d437f414735081bece7df9ef504452817 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -3392,7 +3392,8 @@ dirserv_single_reachability_test(time_t now, routerinfo_t *router)
   tor_assert(node);
 
   if (options->AuthDirTestEd25519LinkKeys &&
-      node_supports_ed25519_link_authentication(node, 1)) {
+      node_supports_ed25519_link_authentication(node, 1) &&
+      router->cache_info.signing_key_cert) {
     ed_id_key = &router->cache_info.signing_key_cert->signing_key;
   } else {
     ed_id_key = NULL;