summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSytse Sijbrandij <sytse@gitlab.com>2015-02-07 01:15:09 +0000
committerSytse Sijbrandij <sytse@gitlab.com>2015-02-07 01:15:09 +0000
commitd3c2253c6d464cdf8fd39a06ac66c26cd73d393e (patch)
tree492da1bde64d7333cc7da79c33630b824d9b2d35
parent89f8020fe12e16faf125a193b25a0eeaea3b49c0 (diff)
parent4ed70669ad1aea1ad1636c5091707ccf1fc7f2e7 (diff)
downloadgitlab-ce-d3c2253c6d464cdf8fd39a06ac66c26cd73d393e.tar.gz
Merge branch 'webhooks-and-internal-services' into 'master'
Add doc on "Web Hooks and insecure internal web services". See #1971. See merge request !1485
-rw-r--r--doc/security/README.md1
-rw-r--r--doc/security/webhooks.md13
2 files changed, 14 insertions, 0 deletions
diff --git a/doc/security/README.md b/doc/security/README.md
index f88375f2afd..49dfa6eec76 100644
--- a/doc/security/README.md
+++ b/doc/security/README.md
@@ -2,4 +2,5 @@
- [Password length limits](password_length_limits.md)
- [Rack attack](rack_attack.md)
+- [Web Hooks and insecure internal web services](webhooks.md)
- [Information exclusivity](information_exclusivity.md)
diff --git a/doc/security/webhooks.md b/doc/security/webhooks.md
new file mode 100644
index 00000000000..1e9d33e87c3
--- /dev/null
+++ b/doc/security/webhooks.md
@@ -0,0 +1,13 @@
+# Web Hooks and insecure internal web services
+
+If you have non-GitLab web services running on your GitLab server or within its local network, these may be vulnerable to exploitation via Web Hooks.
+
+With [Web Hooks](../web_hooks/web_hooks.md), you and your project masters and owners can set up URLs to be triggered when specific things happen to projects. Normally, these requests are sent to external web services specifically set up for this purpose, that process the request and its attached data in some appropriate way.
+
+Things get hairy, however, when a Web Hook is set up with a URL that doesn't point to an external, but to an internal service, that may do something completely unintended when the web hook is triggered and the POST request is sent.
+
+Because Web Hook requests are made by the GitLab server itself, these have complete access to everything running on the server (http://localhost:123) or within the server's local network (http://192.168.1.12:345), even if these services are otherwise protected and inaccessible from the outside world.
+
+If a web service does not require authentication, Web Hooks can be used to trigger destructive commands by getting the GitLab server to make POST requests to endpoints like "http://localhost:123/some-resource/delete".
+
+To prevent this type of exploitation from happening, make sure that you are aware of every web service GitLab could potentially have access to, and that all of these are set up to require authentication for every potentially destructive command. Enabling authentication but leaving a default password is not enough. \ No newline at end of file