Bart Martens <ba...@debian.org> writes:
> On Wed, Jun 12, 2024 at 06:25:02AM +0800, Sean Whitton wrote:

>> BEGIN FORMAL RESOLUTION TEXT
>> 
>> tag2upload allows DDs and DMs to upload simply by using the
>> git-debpush(1) script to push a signed git tag.

> Question. Does the tag signer need to trust the remote vcs and its
> admins at the moment of tag signing? With a .changes file the signer has
> full local control: local source code inspection, local checksums
> generation, and local signing. I wonder how tag2upload would offer this
> level of control without lowering the value of the signatures.

The Git tag signature is over your local Git repository.  It's like most
other Git objects: it's operating on your local copy of the repository.
If the remote side changes, your tag will not reference the new Git tree
on the remote side.  It will still reference the exact Git tree that you
signed.  (Modulo successful SHA-1 collision attacks, of course.)

Now, that doesn't mean that the reviewer necessary uses that property
correctly.  If you git clone the repository, review it, and then sign your
local copy based on that review, you have reasonable assurance that the
tag is on exactly the thing that you reviewed.  If you review the
repository on Salsa via the web interface, and *then* git clone it and
sign it, you have created a window where you could have lost a race and be
signing something different than you had thought.  Or if Salsa was
compromised, it could have been lying to you about the contents of the Git
tree, etc.

However, I don't think this is a new issue with tag2upload.  Exactly the
same caveat applies to the existing upload mechanism: if you review the
code on Salsa and then git clone it and build a source package for
uploading without checking the contents of the git clone separately, there
is exactly the same window of vulnerability.

-- 
Russ Allbery (r...@debian.org)              <https://www.eyrie.org/~eagle/>

Reply via email to