github / github/gh-aw

[uk-ai-resilience] Untracked Dockerfile SHA-pinning gap: root Dockerfile alpine:3.24 unpinned (alert #940, Tier B)

Open Beginner friendly
#61,166 0 comments 0 reactions 0 assignees View on GitHub
ai-generated cookie high-priority security
Dominant language
Go
Stars
5.1k
Forks
541
Avg merge
5h 48m
Merged PRs (30d)
773

Description

### Summary

A fresh code-scanning finding (alert [#940](https://github.com/github/gh-aw/security/code-scanning/940), created 2026-09-15, rule `pr-action.rules.dockerfile.image-pinning.dockerfile-non-sha-pinned-image`, `security_severity_level: high`) flags that this repository's own root `Dockerfile` (used to build the gh-aw compiler container) references its base image by tag rather than by an immutable SHA256 digest:

```
FROM alpine:3.24
```

This is distinct from the previously tracked and already-remediated `node:lts-alpine` base used in `actions/setup/js/Dockerfile.safe-outputs-mcp` (covered by existing `[container-image-scan]` issues with a documented daily digest-refresh process) — no existing open issue covers this root `Dockerfile`'s pinning gap.

### Tier: B — Open With Conditions

| Dimension | Rating |
|---|---|
| Exposure amplification | Medium |
| Patchability | High |
| Detectability | High (scanner-flagged, unambiguous rule) |
| Operational fragility | Low |
| Ownership confidence | High |

### Rationale

Images referenced by tag can change without notice, leading to non-deterministic builds and potential unreviewed security regressions in the base layer. This is a low-effort, high-detectability fix: pin to a specific `@sha256:` and add it to the existing container-pin refresh cadence already used for other images in this repo (e.g. `--force-refresh-container-pins`).

### Remediation action

1. Pin `FROM alpine:3.24` to `FROM alpine:3.24@sha256:` in `/Dockerfile`.
2. Wire the pin into the existing automated digest-refresh workflow so it stays current with upstream Alpine security patches.

### SLA urgency: Medium — 30 days

### Reference

Full discussion report: see the "UK AI Open Code Risk & Resilience" weekly discussion report for 2026-09-08 to 2026-09-15 in this repository's Discussions.

> Generated by [UK AI Operational Resilience](https://github.com/github/gh-aw/actions/runs/34988746047) · copilot · auto · 87.8 AIC · ⌖ 6.25 AIC · ⊞ 8.2K · [◷](https://github.com/search?q=repo%3Agithub%2Fgh-aw+is%3Aissue+%22gh-aw-workflow-call-id%3A+github%2Fgh-aw%2Fuk-ai-operational-resilience%22&type=issues)

Contributor guide

Open the contributing guide

Research direction

Start with /Dockerfile and inspect the existing container-pin refresh workflow invoked by --force-refresh-container-pins; compare how other images are maintained. Pin alpine:3.24 to an immutable digest, include it in that refresh cadence, and confirm the code-scanning finding is resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, dockerfile
Domain
devops, infrastructure
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.