git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Neil Mayhew <neil@mayhew.name>
To: Jeff King <peff@peff.net>, Junio C Hamano <gitster@pobox.com>
Cc: Victoria Dye via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org, Victoria Dye <vdye@github.com>
Subject: Re: [PATCH 0/3] Strengthen fsck checks for submodule URLs
Date: Wed, 13 Nov 2024 17:51:46 -0700	[thread overview]
Message-ID: <c2f97b19-19e6-485d-91c8-24c261aedebe@mayhew.name> (raw)
In-Reply-To: <20241114001003.GA1140565@coredump.intra.peff.net>

On 13 Nov 24 17:10, Jeff King wrote:

My previous message crossed with Jeff's, and he already addressed most 
of what I was saying.

 >  2. All of the people who are going to clone your repo, who might need
 >     to follow special instructions.
 >
 >     The only reason this hasn't been a huge pain in practice is that
 >     almost nobody turns on transfer.fsckObjects in the first place. In
 >     theory the people who do turn it on know enough to examine the
 >     objects themselves and decide if it's OK. I don't know how true that
 >     is in practice, though (and certainly it would be nice to turn this
 >     feature on by default, but I do worry about people getting caught up
 >     in exactly these kind of historical messes).

This is what happened in our situation. The person had 
transfer.fsckObjects enabled but didn't realize that this was the cause 
of the error. They assumed that the repo's *current* submodule 
configuration was corrupt and was somehow causing the clone to fail even 
though they tried explicitly turning off submodule recursion.

 > We did add the gitmoduleUrl check to help with malicious URLs. But it
 > was always an extra layer of defense over the real fix, which was in the
 > credential code. It's _possible_ that a newly discovered vulnerability
 > will be protected by the existing fsck check, but I'm a little skeptical
 > about its security value at this point (especially because hardly
 > anybody runs it locally, and protection on the hosting sites isn't that
 > hard to work around).

I also think it's surprising to have fsck check the *content* of blobs 
rather than just the relationships between them, and to give a blob 
named .gitmodules special treatment. It goes against the philosophy of 
"do one thing well". I feel that there should be a separate tool for 
checking repos for security vulnerabilities, and it could be given 
additional capabilities (such as checking the configuration as well as 
the objects).

 > So if it's causing people real pain in practice, I think there could be
 > an argument for downgrading the check to a warning. I don't have a
 > strong feeling that we _should_ do that, only that I don't personally
 > reject it immediately as an option.

Perhaps there could be some additional warnings in the documentation for 
transfer.fsckObjects to make people aware of the potential costs of 
using it, particularly the existence of legacy issues in established 
repos that would prevent cloning unless some of the fsck.<msg-id> values 
are set to warn. The documentation currently just says "see 
fsck.<msg-id>" and in my case, despite being fairly familiar with git, 
that didn't give me enough to go on while investigating this.

It might also help to give some guidance on how to track down the object 
name(s) that fsck lists, for example by using git log --raw --all 
--find-object=<NAME>. This would help a user to make a more informed 
decision on how to handle such a situation if it arises. In our case, 
once we did this it was quickly obvious that the problem was a 
historical error that had since been fixed rather than a current problem.

  reply	other threads:[~2024-11-14  0:51 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-09 17:53 [PATCH 0/3] Strengthen fsck checks for submodule URLs Victoria Dye via GitGitGadget
2024-01-09 17:53 ` [PATCH 1/3] submodule-config.h: move check_submodule_url Victoria Dye via GitGitGadget
2024-01-09 17:53 ` [PATCH 2/3] t7450: test submodule urls Victoria Dye via GitGitGadget
2024-01-09 21:38   ` Junio C Hamano
2024-01-11 17:23     ` Victoria Dye
2024-01-10 10:38   ` Jeff King
2024-01-11 16:54     ` Victoria Dye
2024-01-12  6:57       ` Jeff King
2024-01-09 17:53 ` [PATCH 3/3] submodule-config.c: strengthen URL fsck check Victoria Dye via GitGitGadget
2024-01-09 21:57   ` Junio C Hamano
2024-01-10  6:33   ` Patrick Steinhardt
2024-01-17 21:19     ` Victoria Dye
2024-01-10 10:23 ` [PATCH 0/3] Strengthen fsck checks for submodule URLs Jeff King
2024-11-13 19:24   ` Neil Mayhew
2024-11-13 19:44     ` Neil Mayhew
2024-11-13 22:40     ` Junio C Hamano
2024-11-14  0:10       ` Jeff King
2024-11-14  0:51         ` Neil Mayhew [this message]
2024-11-14  2:20         ` Junio C Hamano
2024-11-14 19:11           ` Neil Mayhew
2024-11-14  0:27       ` Neil Mayhew
2024-01-18  1:55 ` [PATCH v2 0/4] " Victoria Dye via GitGitGadget
2024-01-18  1:55   ` [PATCH v2 1/4] submodule-config.h: move check_submodule_url Victoria Dye via GitGitGadget
2024-01-18  1:55   ` [PATCH v2 2/4] test-submodule: remove command line handling for check-name Victoria Dye via GitGitGadget
2024-01-18 20:44     ` Junio C Hamano
2024-01-18  1:55   ` [PATCH v2 3/4] t7450: test submodule urls Victoria Dye via GitGitGadget
2024-01-19  6:05     ` Patrick Steinhardt
2024-01-19 18:16       ` Junio C Hamano
2024-01-18  1:55   ` [PATCH v2 4/4] submodule-config.c: strengthen URL fsck check Victoria Dye via GitGitGadget
2024-01-18 18:24   ` [PATCH v2 0/4] Strengthen fsck checks for submodule URLs Junio C Hamano
2024-01-20  0:51     ` Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c2f97b19-19e6-485d-91c8-24c261aedebe@mayhew.name \
    --to=neil@mayhew.name \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=vdye@github.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).