Skip to content

Commit 104fdd0

Browse files
authored
ci: use alpine:3.20 to workaround insecure runc procfs (#870)
* ci: trigger vm workflows to check runc procfs * fix: use alpine:3.20 * chore: specify go version in one place
1 parent f20e96e commit 104fdd0

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

.github/workflows/workflow_integration_tests_vm.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ jobs:
3535
- name: build matrix
3636
id: build-matrix
3737
env:
38-
# 3 partitions, one for each of: TestMultiProcess, TestMultiProcessAppCP, TestMultiProcessAppCPNoIP
38+
# 3 partitions, one for each of:
39+
# TestMultiProcess, TestMultiProcessAppCP, TestMultiProcessAppCPNoIP
3940
PARTITIONS: 3
4041
TEST_TAGS: integration
4142
run: |

internal/test/vm/Dockerfile

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,36 @@
1-
FROM golang:1.25.3-alpine@sha256:aee43c3ccbf24fdffb7295693b6e33b21e01baec1b2a55acc351fde345e9ec34
1+
FROM alpine:3.20
22

33
# this is the toplevel Makefile target to be invoked
44
# see the contents of 'startup.sh' at the end of this file
55
ARG target=run-integration-test-vm
66
ARG test_pattern=TestMultiProcess
77
ARG run_number=1
8+
ARG GO_VERSION=1.25.1
89

10+
# Pin Docker/runc to Alpine 3.20 versions (before November 2025 CVE patches)
11+
# The procfs security checks in newer runc (CVE-2025-52881, CVE-2025-52565,
12+
# CVE-2025-31133) prevent containers from starting in nested virtualization.
13+
# Even buildkit containers fail to boot, so insecure buildx approach is not viable.
914
RUN apk update && apk add --no-cache \
1015
agetty \
1116
bash \
17+
ca-certificates \
1218
docker \
13-
docker-compose \
19+
docker-cli-compose \
1420
git \
1521
make \
1622
openrc \
1723
openssh \
18-
shadow
24+
shadow \
25+
wget
26+
27+
# Install desired Go version
28+
RUN wget -q https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz && \
29+
tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz && \
30+
rm go${GO_VERSION}.linux-amd64.tar.gz && \
31+
ln -s /usr/local/go/bin/go /usr/bin/go && \
32+
ln -s /usr/local/go/bin/gofmt /usr/bin/gofmt && \
33+
go version
1934

2035
RUN ssh-keygen -A && \
2136
echo "root:root" | chpasswd && \
@@ -75,6 +90,12 @@ while ! docker info >/dev/null 2>&1; do
7590
done
7691
echo "Docker daemon is ready"
7792

93+
# Verify runc version
94+
echo "=== Docker/runc versions in VM ==="
95+
docker version
96+
runc --version
97+
echo "=================================="
98+
7899
if [[ -n "$target" ]]; then
79100
echo "=== Starting test execution ==="
80101
echo "Current directory: $(pwd)"

0 commit comments

Comments
 (0)