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
Add hostname option to mitigate DNS rebinding #1260
Merged
+8
−0
Merged
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.
Loading status checks…
Add hostname option to mitigate DNS rebinding
This adds the `hostname` opt to allow the server to validate the `Host` header of incoming requests to prevent DNS rebinding attacks. Needed for brave/browser-laptop#12616.
- Loading branch information
| @@ -51,6 +51,15 @@ function Server (torrent, opts) { | ||
| // deny them | ||
| if (req.headers.origin == null) return false | ||
|
|
||
| // If a 'hostname' string is specified, deny requests with a 'Host' | ||
| // header that does not match the origin of the torrent server to prevent | ||
| // DNS rebinding attacks. | ||
| if (opts.hostname) { | ||
| if (req.headers.host !== `${opts.hostname}:${server.address().port}`) { | ||
diracdeltas
Author
Contributor
|
||
| return false | ||
| } | ||
| } | ||
|
|
||
| // The user allowed all origins | ||
| if (opts.origin === '*') return true | ||
|
|
||
ProTip!
Use n and p to navigate between commits in a pull request.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
What would Brave set the
hostnameoption to? If it would be set tochrome-extension://xxx, then I fear this won't work since it's going to append the torrent server's port to that and reject anything that doesn't match that.I think we can remove the code that adds the port. Correct me if I'm wrong.