Geo route whitelisting is too optimistic
The following discussion from !2758 (merged) should be addressed:
-
@nick.thomas started a discussion: Hmm. This is a more general problem than just this route, so let's resolve it in a separate issue, but consider this form:
https://gitlab.com/nick.thomas/gitlab-ce/new/master/app
It will POST to a URL ending in a completely user-controlled string. If they have
/info/lfs/objects/batchas a directory hierarchy, then attempting to create a new file there will be whitelisted here.Since we're only touching the filesystem, I wonder if this will actually succeed and cause the secondary to go out of sync with the primary?
All these ends_with? and includes? checks in lib/gitlab/middleware/readonly_geo.rb have this problem.
/cc @dbalexandre @stanhu