openshift / openshift/ocm-agent-operator

Add checksum verification for fullsend binary download in Jira poll workflow

Open Beginner friendly
#352 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ready-for-triage
Dominant language
Go
Stars
3
Forks
59
Avg merge
10h 17m
Merged PRs (30d)
25

Description

What happened

On PR #351, coderabbitai flagged CWE-494 (download of code without integrity check) on the gh release download step in .github/workflows/fullsend-poll-jira.yaml. The step downloads and immediately extracts a tarball from fullsend-ai/fullsend releases without verifying its SHA256 checksum or Sigstore signature. The fullsend-ai review agent's security sub-agent did not flag this pattern — it focused on permission blocks and secrets instead. The v0.38.0 release provides checksums.txt and checksums.txt.sigstore.json that could be used for verification.

What could go better

The Jira poll workflow downloads and executes a binary with Jira credentials available in the environment. While the binary comes from a first-party repo (fullsend-ai/fullsend) and exploitability is rated difficult, verifying the download against the published checksum is a low-cost defense-in-depth measure. This is a pre-existing pattern that PR #351 did not introduce, but the version pinning change (from latest to v0.38.0) makes it a natural time to add verification.

Confidence: Moderate. The risk is low (first-party binary, pinned version, private repo), but the fix is simple and aligns with supply-chain security best practices. The Jira credential exposure elevates the concern slightly.

Proposed change

In .github/workflows/fullsend-poll-jira.yaml, update the download step to verify the tarball checksum before extracting. Replace the current single-line download-and-extract with:

run: |
  gh release download v0.38.0 --repo fullsend-ai/fullsend \
    -p 'fullsend_*_linux_amd64.tar.gz' \
    -p 'checksums.txt'
  sha256sum --check --ignore-missing checksums.txt
  tar xzf fullsend_*_linux_amd64.tar.gz
  sudo mv fullsend /usr/local/bin/

This downloads both the tarball and the checksums file, verifies the tarball against the published checksum, and only then extracts it.

Validation criteria

The next workflow run of fullsend-poll-jira.yaml should: (a) successfully download and verify the checksum before extraction, (b) fail the job if the checksum does not match, and (c) pass coderabbitai's CWE-494 check on future PRs modifying this file.


Generated by retro agent from https://github.com/openshift/ocm-agent-operator/pull/351

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Open .github/workflows/fullsend-poll-jira.yaml and inspect the fullsend download step. Start by checking the v0.38.0 release asset and checksums.txt, then run the workflow or its relevant commands to confirm verification occurs before extraction. Done means a matching checksum allows the download to proceed, a mismatch fails the job, and the workflow remains valid.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, shell
Domain
ci-cd, devops, security
Issue type
Bug
Difficulty
1/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
88/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.