Andreas Tille <andr...@an3as.eu> writes:

> From a user perspective some intermediate binary build wouldn't be more
> difficult, thought.

It would be nice to not do this on the tag2upload server, though, to
maintain some security separation.

I think it's possible to avoid running arbitrary code from the package
during a source package build because tag2upload doesn't need to run the
clean step since it's starting from a fresh Git checkout (please check me
on this).  If I'm correct, it's much harder to attack the source package
worker than it is to attack a buildd, which is arbitrary code execution
from the package by design.  You have to find an exploit in the source
package construction code first.

Yes, the binary build would be sandboxed, of course, but Linux sandboxing
isn't perfect.  I would feel more comfortable if binary builds were done
somewhere without any access to the tag2upload signing key, even via a
sandbox break.

I may be over-solving this problem given that the same sandbox break
attack could probably be turned into a persistent compromise of an amd64
buildd, which would be arguably worse than compromising the tag2upload
server.  But still, binary builds are inherently risky and the more
sandboxing we can put around them, the better.  Ideally we would run them
in disposable VMs that we reset after each build.

Given all of that, I think it would be more promising to look into a
deeper integration with Salsa to check if the Salsa CI has succeeded, as
discussed earlier in this thread.  That would also match common upstream
practice in Git-first development where the workflow for generating the
release artifact depends on all of the tests passing through the normal CI
mechanism.

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

Reply via email to