Live data from Hacker News

Immutable releases are now generally available on GitHub

github.blog

21–30 of 64 posts

Re: Immutable releases are now generally available on GitHub

#21
post #10

Why is deletion not allowed, which supply chain attacks work by deleting a release, not changing it to a malicious one?

I'd guess one MO is to delete a malicious package/url shortly after releasing it to prevent researchers from getting to it.

So they wouldn't make a release immutable?

Re: Immutable releases are now generally available on GitHub

#23
As I'm working on a signing scheme for release authentication, this is a welcome news.

To alleviate the issue of mutable releases I had set up a mirror of releases checksums to be able to detect releases alterations. This is not needed anymore for immutable releases.

And automatically publishing checking of releases artifacts is also a good recent change by GH: in that project mentioned above I have developed a cli downloader checking the checksums of the downloaded file [1], but to be useful, it required the project to publish checksums, and the project to be mirrored. Now both of these requirements are dropped and the tool is readily useful for all GitHub immutable releases.

1: https://github.com/asfaload/asfald/

Re: Immutable releases are now generally available on GitHub

#24
post #21

Earlier quoted context omitted.

I'd guess one MO is to delete a malicious package/url shortly after releasing it to prevent researchers from getting to it.

So they wouldn't make a release immutable?

Which means the tainted release doesn't matter anymore to those consumers worried about the immutable release attestation anyways. If others are worried about that, they should probably consume only attested immutable releases as well.

I'd still bet the larger portion was it was just a particularly easy path to preventing downgrade attacks or the like though. Could always be more to it as well I'm not thinking of, just feels likely.

Re: Immutable releases are now generally available on GitHub

#25
post #10

Why is deletion not allowed, which supply chain attacks work by deleting a release, not changing it to a malicious one?

I think the reason here is to prevent deletion that cause upstream disruptions.

See the reasoning in the PEP 763 (not adopted )

https://peps.python.org/pep-0763/

Re: Immutable releases are now generally available on GitHub

#26
post #5

Earlier quoted context omitted.

Yeah, how did it work before that it was not immutable?! > With immutable releases, assets and tags are protected from tampering after publication I really, really wonder how it worked before. Can anyone explain?

"Before", it was trivial to move or delete tags and edit release assets. The only stable identifier available was the commit hash. Immutable releases now enable permanently locking tags and releases to make supply chain attacks harder to affect users who are using release assets from before an attack occurred. The previous behavior is still available by the way, I'm not sure what you meant by "before".

> The previous behavior is still available by the way, I'm not sure what you meant by "before".

I know, I was just wondering how it worked that needed this improvement.

Re: Immutable releases are now generally available on GitHub

#27
post #10

Why is deletion not allowed, which supply chain attacks work by deleting a release, not changing it to a malicious one?

Deletion creates a hole. The hole can be filled by something else. This is a form of mutation.

What you probably want instead is one-way revocation. You place a permanent marker that says "do not use this release because it is {broken, malicious, ...}".

Re: Immutable releases are now generally available on GitHub

#28
post #27
post #10

Why is deletion not allowed, which supply chain attacks work by deleting a release, not changing it to a malicious one?

Deletion creates a hole. The hole can be filled by something else. This is a form of mutation. What you probably want instead is one-way revocation. You place a permanent marker that says "do not use this release because it is {broken, malicious, ...}".

No, you can make the whole immutable, that is if a tag in an immutable repo was used and deleted, it can't be used again

Re: Immutable releases are now generally available on GitHub

#29
post #10

Why is deletion not allowed, which supply chain attacks work by deleting a release, not changing it to a malicious one?

I assume they're doing the trivial workaround to prevent renaming by way of delete and recreate?

Then you'd ban the recreation part?

Re: Immutable releases are now generally available on GitHub

#30

My instant reaction was: "Wait?! They weren't immutable before?" I'm glad they're doing this, and it's an unpleasant surprise that they didn't already work this way. I don't understand why they allow mutable releases.

We've had a few issues in the past where a file wasn't updated during the release process, requiring us to re-publish one small change. It's not optimal, but given the nature of our release process being long and complex it's a lot easier to fix the asset in three minutes rather than spend an entire day re-building and re-publishing an entire release, updating our docs, etc. just because of one line in one file that wasn't updated correctly.
Post reply on HN