-
Notifications
You must be signed in to change notification settings - Fork 38.7k
net: Prevent routing of deprecated Site Local IPv6 #19985
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
fefac54 to
fbab5ed
Compare
|
I'd say our code doesn't have to implement the full spec, unless it's beneficial for Bitcoin.
On the other hand:
I'm -0 on this right now. |
|
I think it makes sense to consistently reject all local networks here, even the deprecated one. It's a small straightforward code change too. |
|
Tyi. Not waving in here for now, if that makes sense or not. But since rfc5000 is not longer the STD1 RFC and deprecated in rfc7100 I can only recommend to grep and use for standard advice in https://www.rfc-editor.org/standards There are only few binding Standad's defined in regard to ipv6, AFAICS rfc3879 is no Standard. |
|
Concept ACK Rationale:
Unfortunately |
|
We definitely should not use Link-Local addresses But digging further. And thereby those address are to be treated as any global unicast like any routeable ipv6 address. So rfc3879 is outdated as it refer to rfc3513 where those address are defined non routeable but now are routeable and then Tor needs some update. Or I am simply wrong here? and we should anyway better follow Tor and risk no leaks and not follow the internet Draft Standard but use an outdated recommendation and an obsoleted proposed standard? Its clearly true if we follow Tor we must change but since we had this practice all along and Tor follows outdated rfc, i am not sure if it might be better to file a Tor trac and earn for the bitcoin dev there some bug points? |
|
Oh, TIL! Thanks a lot! I was wrong about the current routability status of Turns out this prefix has had a bumpy road:
I guess Tor is erring on the side of caution by disallowing connections to a prefix that has previously been for site local use :) |
|
It should be noted that |
|
@practicalswift In roundabout 2007 those source code lines to follow blocking rules by rfc3879 came into Tor core. from utils.c to address.c they where since then never updated to follow the newest standard. I tend to file a bug trac issue on Tor to decide whom they want to follow, but since u noticed first that we did never blocked those ip ranges. please outpace me in that.
Though i hope u see the potential here to dig some privacy tunnels, IETF had granted us to get the internet back again. Although if u can outline one real world scenario where those addresses could even remotely leak or fingerprint in any way like what the client does since eons with seeding and -onlynet=onion, i consent instantly. |
Feel free to open such an issue if you want their position clarified. Personally I think Tor is intentionally erring on the side of caution here, and I think we should do that too :) FWIW you'll occasionally see |
fbab5ed to
c4ba79b
Compare
|
An example from mainnet where Bitcoin Core tries to connect to a The connections is blocked by Tor: |
|
@gmaxwell do you have any thoughts/insight here? |
|
We should either merge this or close #19978 as "not an issue". I'd personally err on the side of merging this, though I also get the point that it makes very little difference and we can't and shouldn't maintain a global IPv6 blacklist as part of bitcoin core and make a dayjob out of rule-lawyering IETF specs. |
|
Agree with @laanwj. FWIW I think this is the only divergence between what we consider to be the public Internet and what Tor considers to be the public Internet :) |
Agree, I also think we can now close #19978, since Tor will move from 0.4.6.x there codebase in favor of also not exempt those addresses any more and follow the advance of the Internet standardization process. So thx, to all who participated in this, Once again, Bitcoin has proved that we stand for no censorship at all and specially thx to @practicalswift to notice that issue and we together prevented shit happened before ipv6 is wildly used, Also special thx to @n-thumann for done this now void work but be sure u where part of something really important. |
jonatack
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've reviewed and tested this but it's not clear to me if it should be done.
ACK c4ba79b if we want to do this
|
@jonatack tyi.
Concept NACK Bcs. Tor made to *not block those any longer* a milestone for next releases and probably even backport's, since to block them even in the first place is technical debt on Tor side to not keep it since it was never a standard but just on the wish list of early drafts of censors that was reverted by the standard process. |
|
Should we just implement https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml? Only |
@sipa That is what IANA defines, suppose they assign port 8333 solely for router internal use after 2020? Will we then follow that Whitelist too, when RFC's track say;s otherwise? There is and will probably ever be only one exemption in ipv6 from the unicast range to be not global unicast assignable (what in effect mean they will be not routeable like ::0 and ::1) and that is the whole ff00::/8 range defined by Standard Track RFC4291 If we would do a Whitelist, where do you start and when do u stop and what is the update interval to that Whitelist?, u become a censor and slave of IANA, when in fact there is only one Internet Standard and that very app that clams to be Internet compatible has to follow strict, its the RFC standard track process, The internet as such is the RFC's track there is no second Internet, same as we would never allow miners to censor tx that we and the user define as valid., |
I really like this idea from a simplicity point of view. I sometimes wonder what other P2P software does with regard to whitelisting/blacklisting subnet ranges for relayed addresses. |
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
|
🐙 This pull request conflicts with the target branch and needs rebase. Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft". |
There hasn't been much activity lately and the patch still needs rebase. What is the status here?
|
|
Marked "up for grabs" |
|
Closing for now. Let us know when it should be reopened. |
This PR fixes #19978.
Currently Site Local IPv6 addresses as treated as routable, even though as of RFC 3879 they should not be routed. I therefore implemented a check to detect and flag them as not routable.