Skip to content

Both snap packages and the CycloneDX SBOM ship with no checksum of any kind #913

Description

@yusuf-gundogdu

Checksums in a release are split two ways, and three payload assets fall through the gap.

Of the 16 payload assets in 0.15.0:

  • 8 carry their own <name>.sha256 — the .deb, .rpm and AppImage files
  • 5 are listed in the combined SHA256SUMS — the standalone archives
  • 3 have neither:
libredb-studio-0.15.0.cdx.json
libredb-studio_0.15.0_amd64.snap
libredb-studio_0.15.0_arm64.snap

Reproduce:

gh api repos/libredb/libredb-studio/releases/latest --jq "[.assets[].name]" > assets.json
curl -sL "$(gh api repos/libredb/libredb-studio/releases/latest \
  --jq ".assets[]|select(.name==\"SHA256SUMS\")|.browser_download_url")" > sums.txt
python3 - <<PY
import json
n = json.load(open("assets.json")); sums = open("sums.txt").read()
payload = [a for a in n if not a.endswith(".sha256") and a != "SHA256SUMS"]
print([a for a in payload if (a + ".sha256") not in n and a not in sums])
PY

The snaps are the awkward ones: they are a documented install channel, so someone who downloads the .snap from the release page rather than through the Snap Store has nothing to check it against. The SBOM matters less in practice but it is the file a security reviewer is most likely to want a hash for.

Either extend SHA256SUMS to cover every payload asset, or emit a .sha256 for the three that lack one. Extending the combined file looks simpler and would also make the split easier to explain: right now a reader has to know which of the two mechanisms applies to the artifact they picked.

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinggood first issueGood for newcomers

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions