-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Support allowed hosts for webhook to work with proxy #27655
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
lunny
approved these changes
Oct 17, 2023
appleboy
approved these changes
Oct 18, 2023
GiteaBot
pushed a commit
to GiteaBot/gitea
that referenced
this pull request
Oct 18, 2023
When `webhook.PROXY_URL` has been set, the old code will check if the proxy host is in `ALLOWED_HOST_LIST` or reject requests through the proxy. It requires users to add the proxy host to `ALLOWED_HOST_LIST`. However, it actually allows all requests to any port on the host, when the proxy host is probably an internal address. But things may be even worse. `ALLOWED_HOST_LIST` doesn't really work when requests are sent to the allowed proxy, and the proxy could forward them to any hosts. This PR fixes it by: - If the proxy has been set, always allow connectioins to the host and port. - Check `ALLOWED_HOST_LIST` before forwarding.
GiteaBot
pushed a commit
to GiteaBot/gitea
that referenced
this pull request
Oct 18, 2023
When `webhook.PROXY_URL` has been set, the old code will check if the proxy host is in `ALLOWED_HOST_LIST` or reject requests through the proxy. It requires users to add the proxy host to `ALLOWED_HOST_LIST`. However, it actually allows all requests to any port on the host, when the proxy host is probably an internal address. But things may be even worse. `ALLOWED_HOST_LIST` doesn't really work when requests are sent to the allowed proxy, and the proxy could forward them to any hosts. This PR fixes it by: - If the proxy has been set, always allow connectioins to the host and port. - Check `ALLOWED_HOST_LIST` before forwarding.
KN4CK3R
pushed a commit
that referenced
this pull request
Oct 18, 2023
Backport #27655 by @wolfogre When `webhook.PROXY_URL` has been set, the old code will check if the proxy host is in `ALLOWED_HOST_LIST` or reject requests through the proxy. It requires users to add the proxy host to `ALLOWED_HOST_LIST`. However, it actually allows all requests to any port on the host, when the proxy host is probably an internal address. But things may be even worse. `ALLOWED_HOST_LIST` doesn't really work when requests are sent to the allowed proxy, and the proxy could forward them to any hosts. This PR fixes it by: - If the proxy has been set, always allow connectioins to the host and port. - Check `ALLOWED_HOST_LIST` before forwarding. Co-authored-by: Jason Song <[email protected]>
KN4CK3R
pushed a commit
that referenced
this pull request
Oct 18, 2023
Backport #27655 by @wolfogre When `webhook.PROXY_URL` has been set, the old code will check if the proxy host is in `ALLOWED_HOST_LIST` or reject requests through the proxy. It requires users to add the proxy host to `ALLOWED_HOST_LIST`. However, it actually allows all requests to any port on the host, when the proxy host is probably an internal address. But things may be even worse. `ALLOWED_HOST_LIST` doesn't really work when requests are sent to the allowed proxy, and the proxy could forward them to any hosts. This PR fixes it by: - If the proxy has been set, always allow connectioins to the host and port. - Check `ALLOWED_HOST_LIST` before forwarding. Co-authored-by: Jason Song <[email protected]>
I was unable to create a backport for 1.20. @wolfogre, please send one manually. 🍵
|
I was unable to create a backport for 1.21. @wolfogre, please send one manually. 🍵
|
zjjhot
added a commit
to zjjhot/gitea
that referenced
this pull request
Oct 19, 2023
* giteaofficial/main: [skip ci] Updated translations via Crowdin Add link for repositories README file (go-gitea#27684) Fix typo "GetLatestRunnerToken" (go-gitea#27680) Clipboard copy enhancements (go-gitea#27669) Remove unnecessary parameter (go-gitea#27671) Always delete existing scheduled action tasks (go-gitea#27662) Support allowed hosts for webhook to work with proxy (go-gitea#27655)
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
backport/done
All backports for this PR have been created
backport/v1.20
This PR should be backported to Gitea 1.20
backport/v1.21
This PR should be backported to Gitea 1.21
lgtm/done
This PR has enough approvals to get merged. There are no important open reservations anymore.
topic/security
Something leaks user information or is otherwise vulnerable. Should be fixed!
type/bug
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.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When
webhook.PROXY_URL
has been set, the old code will check if the proxy host is inALLOWED_HOST_LIST
or reject requests through the proxy. It requires users to add the proxy host toALLOWED_HOST_LIST
. However, it actually allows all requests to any port on the host, when the proxy host is probably an internal address.But things may be even worse.
ALLOWED_HOST_LIST
doesn't really work when requests are sent to the allowed proxy, and the proxy could forward them to any hosts.This PR fixes it by:
ALLOWED_HOST_LIST
before forwarding.