[tor-commits] [tor/release-0.4.6] Add warning when trying to connect to deprecated v2 onions.

dgoulet at torproject.org dgoulet at torproject.org
Fri May 7 13:09:32 UTC 2021


commit 5e836eb80c31b97f87b152351b6a7a932aeffaed
Author: George Kadianakis <desnacked at riseup.net>
Date:   Wed May 5 11:10:28 2021 +0300

    Add warning when trying to connect to deprecated v2 onions.
---
 changes/ticket40373           |  3 +++
 src/core/or/connection_edge.c | 15 ++++++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/changes/ticket40373 b/changes/ticket40373
new file mode 100644
index 0000000000..3b2edd0652
--- /dev/null
+++ b/changes/ticket40373
@@ -0,0 +1,3 @@
+  o Minor features (onion services):
+    - Add warning message when connecting to deprecated v2 onions.
+      Closes ticket 40373.
\ No newline at end of file
diff --git a/src/core/or/connection_edge.c b/src/core/or/connection_edge.c
index 8e13161348..a307249967 100644
--- a/src/core/or/connection_edge.c
+++ b/src/core/or/connection_edge.c
@@ -2242,7 +2242,7 @@ connection_ap_handshake_rewrite_and_attach(entry_connection_t *conn,
   }
 
   /* Now, we handle everything that isn't a .onion address. */
-  if (addresstype != ONION_V3_HOSTNAME) {
+  if (addresstype != ONION_V3_HOSTNAME && addresstype != ONION_V2_HOSTNAME) {
     /* Not a hidden-service request.  It's either a hostname or an IP,
      * possibly with a .exit that we stripped off.  We're going to check
      * if we're allowed to connect/resolve there, and then launch the
@@ -2527,6 +2527,19 @@ connection_ap_handshake_rewrite_and_attach(entry_connection_t *conn,
     return 0;
   } else {
     /* If we get here, it's a request for a .onion address! */
+
+    /* We don't support v2 onions anymore. Log a warning and bail. */
+    if (addresstype == ONION_V2_HOSTNAME) {
+      log_warn(LD_PROTOCOL, "Tried to connect to a v2 onion address, but this "
+               "version of Tor no longer supports them. Please encourage the "
+               "site operator to upgrade. For more information see "
+               "https://blog.torproject.org/v2-deprecation-timeline.");
+      control_event_client_status(LOG_WARN, "SOCKS_BAD_HOSTNAME HOSTNAME=%s",
+                                  escaped(socks->address));
+      connection_mark_unattached_ap(conn, END_STREAM_REASON_TORPROTOCOL);
+      return -1;
+    }
+
     tor_assert(addresstype == ONION_V3_HOSTNAME);
     tor_assert(!automap);
     return connection_ap_handle_onion(conn, socks, circ);





More information about the tor-commits mailing list