Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
T
Tor
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,070
    • Issues 1,070
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 38
    • Merge Requests 38
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • The Tor Project
  • Core
  • Tor
  • Issues
  • #40156

Closed
Open
Opened Oct 05, 2020 by saibato@saibato

reflect that RFC3879 cites the proposed RFC3513 is now outdated by the Draft Standard RFC4291

The source Tor code src/lib/net/address.c still follows an old outdated internet guideline and might block otherwise now routebable addresses.

Since we had a discussion in Bitcoin core dev https://github.com/bitcoin/bitcoin/pull/19985

So id like to point this out here and ask about Tor's view on this?

For reference' RFC4291

A fix could be:

diff --git a/src/lib/net/address.c b/src/lib/net/address.c
index ea6c29db9f..6600b0db06 100644
--- a/src/lib/net/address.c
+++ b/src/lib/net/address.c
@@ -241,9 +241,6 @@ tor_addr_make_null(tor_addr_t *a, sa_family_t family)
 /** Return true iff <b>ip</b> is an IP reserved to localhost or local networks.
  *
  * If <b>ip</b> is in RFC1918 or RFC4193 or RFC4291, we will return true.
- * (fec0::/10, deprecated by RFC3879, is also treated as internal for now
- * and will return true.)
- *
  * If <b>ip</b> is 0.0.0.0 or 100.64.0.0/10 (RFC6598), we will act as:
  *  - Internal if <b>for_listening</b> is 0, as these addresses are not
  *    routable on the internet and we won't be publicly accessible to clients.
@@ -287,8 +284,7 @@ tor_addr_is_internal_(const tor_addr_t *addr, int for_listening,
       return 0;
 
     if (((iph6[0] & 0xfe000000) == 0xfc000000) || /* fc00/7  - RFC4193 */
-        ((iph6[0] & 0xffc00000) == 0xfe800000) || /* fe80/10 - RFC4291 */
-        ((iph6[0] & 0xffc00000) == 0xfec00000))   /* fec0/10 D- RFC3879 */
+        ((iph6[0] & 0xffc00000) == 0xfe800000))   /* fe80/10 - RFC4291 */
       return 1;
 
     if (!iph6[0] && !iph6[1] && !iph6[2] &&

I also saw a hint to this in #7971 so maybe this is already discussed and was decided to leave it as is? Since some time has now gone by and that memo referenced is outdated also and rfc4291 is now a Draft Standard, i wonder what the actual view of Tor on this is?

Edited Oct 05, 2020 by saibato
To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
Tor: 0.4.6.x-freeze
Milestone
Tor: 0.4.6.x-freeze
Assign milestone
Time tracking
None
Due date
None
Reference: tpo/core/tor#40156