Re: [PATCH 0/3] credential: handle partial URLs in config settings again
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Apr 22, 2020, 22:47 UTC
- Message-ID
- <20200422224711.GC140314@google.com>
- In-Reply-To
- <nycvar.QRO.7.76.6.2004230019170.18039@tvgsbejvaqbjf.bet>
Hi,
Johannes Schindelin wrote:
> On Wed, 22 Apr 2020, Jeff King wrote: >> On Wed, Apr 22, 2020 at 08:51:02PM +0000, Johannes Schindelin via GitGitGadget wrote:
Show 20 quoted lines
>>> Please note that Git v2.17.4 will not do what we would expect here: if any >>> host name (without protocol) is specified, e.g. -c >>> credential.golli.wog.username = boo, it will actually ignore the host name. >>> That is, this will populate the username: >>> >>> $ echo url=https://example.com | >>> git -c credential.totally.bog.us.username=foo credential fill >> >> That seems scary. What if it is not .username, but: >> >> [credential "example.com"] >> username = foo >> helper = "!echo password=bar" >> >> ? (Or you can imagine a helper that is pulling from a read-only store, >> like "pass"). That would send the credential to the wrong host. > > It would. But I am not aware of any implications regarding `.gitmodules` > (for some reason I now expect every bug to open an attack vector via > submodules, I wonder why that is), so that's at least good.
Submodules are only one of many ways that people end up cloning from an attacker-controlled URL. In submodules we're careful not to use --recurse-submodules by default at clone time. So I'll mentally subsitute "attacker-controlled URLs" where you say "submodules". ;-)
I agree with Peff's concern about the unpatched state: since there are people who use `[credential "host.example.com"] helper` and there are credential helpers that ignore the host passed in, the combination can hurt people. (Fortunately, there aren't many credential helpers in that category that are commonly used.)
[...]
> Yes. For the record, I tried to be very careful here. The _only_ code path > that is affected by this change is the config reading.
[...]
> But again, I would love another pair of eyes on this, to confirm my > analysis.
As mentioned above, the config reading is sensitive, too. That said, I suspect you got it to do basically the right thing.
Reading through the patches. Thank you.
Jonathan