Skip to content

Commit c8ebd20

Browse files
lpcoxCopilotCopilot
authored
Add protected enclave entry diagnostics (#7772)
* feat: add protected enclave entry diagnostics Add bounded progress and preflight events, preserve safe launch errors, and keep private inputs out of protected session metadata. Cover launch failures, timeout cleanup, redaction, milestones, and audit mapping. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * ci: compile workflows with enclave-compatible gh-aw Build the exact gh-aw revision used by the agent-enclave workflow so supply-chain compilation recognizes its GitHub capability configuration. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e552ccd0-4793-480a-bcf9-da6172693e60 * Fix enclave MCP image CVE scan Upgrade Alpine runtime packages before installing docker-cli so the enclave MCP server picks up patched OpenSSL packages. Remove the obsolete version-scoped CVE exception. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e552ccd0-4793-480a-bcf9-da6172693e60 * Upgrade Alpine packages across scanned images Apply current Alpine security updates to every affected image stage so the blocking Grype gate sees patched OpenSSL 3.5.8 packages consistently. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e552ccd0-4793-480a-bcf9-da6172693e60 --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Copilot-Session: e552ccd0-4793-480a-bcf9-da6172693e60
1 parent 4bcdf22 commit c8ebd20

8 files changed

Lines changed: 520 additions & 68 deletions

File tree

.github/workflows/supply-chain-scan.yml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,30 @@ jobs:
5757
with:
5858
persist-credentials: false
5959

60-
- name: Install gh-aw
61-
uses: github/gh-aw-actions/setup-cli@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
60+
- name: Checkout enclave-compatible gh-aw compiler
61+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
62+
with:
63+
repository: github/gh-aw
64+
ref: 1cf55bdc4f19e5f371b1e7fe888df649695ee48a
65+
path: .tmp/gh-aw-compiler
66+
persist-credentials: false
67+
68+
- name: Set up Go
69+
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
6270
with:
63-
version: v0.87.5
71+
go-version-file: .tmp/gh-aw-compiler/go.mod
72+
cache: false
73+
74+
- name: Install enclave-compatible gh-aw
75+
run: |
76+
mkdir -p "$HOME/.local/share/gh/extensions/gh-aw"
77+
go build \
78+
-C .tmp/gh-aw-compiler \
79+
-ldflags="-X main.version=v0.87.5-108-g1cf55bdc4f -X main.isRelease=true" \
80+
-o "$HOME/.local/share/gh/extensions/gh-aw/gh-aw" \
81+
./cmd/gh-aw
82+
rm -rf .tmp/gh-aw-compiler
83+
gh aw version
6484
6585
- name: Compile + generate SBOMs (Syft)
6686
env:

.grype.yaml

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,6 @@
1010
# Format reference: https://github.com/anchore/grype?tab=readme-ov-file#configuration
1111

1212
ignore:
13-
# ── OpenSSL 3.5.7 QUIC server listener DoS ──────────────────────────────────
14-
#
15-
# CVE-2026-14456 (OpenSSL QUIC server pending-connection queue, HIGH):
16-
# The affected path exists only in OpenSSL's QUIC server listener, where
17-
# valid Initial packets can create unbounded pending connection objects.
18-
#
19-
# Risk acceptance — NOT REACHABLE in AWF images:
20-
# The affected images use libssl for client-side HTTPS/TLS or conventional
21-
# TCP servers. They do not create OpenSSL QUIC listeners or expose UDP
22-
# services, so attacker-controlled QUIC Initial packets cannot reach the
23-
# vulnerable listener path.
24-
#
25-
# No fixed Alpine 3.24 package is available today: libcrypto3/libssl3
26-
# 3.5.7-r0 is current and Grype reports no fixed package. Revisit when
27-
# Alpine publishes OpenSSL >= 3.5.8, then rebuild the images and delete
28-
# these version-scoped exceptions.
29-
# Advisory: https://security.alpinelinux.org/vuln/CVE-2026-14456
30-
- vulnerability: CVE-2026-14456
31-
package:
32-
name: libcrypto3
33-
version: "3.5.7-r0"
34-
type: apk
35-
- vulnerability: CVE-2026-14456
36-
package:
37-
name: libssl3
38-
version: "3.5.7-r0"
39-
type: apk
40-
4113
# ── Node.js 22.23.2 Permission Model false positive ───────────────────────────
4214
#
4315
# CVE-2026-58043 (Node.js Permission Model path matching, HIGH):

containers/api-proxy/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
# Routes through Squid to respect domain whitelisting
33
FROM node:22.23.2-alpine3.24
44

5-
# Install curl for healthchecks (>=8.21.0-r0 to fix CVE in 8.20.x)
6-
RUN apk add --no-cache "curl>=8.21.0-r0"
5+
# Install current Alpine security updates and curl for healthchecks.
6+
RUN apk upgrade --no-cache \
7+
&& apk add --no-cache "curl>=8.21.0-r0"
78

89
# Replace the vulnerable npm 10.x bundled with Node 22.23.2 with npm 11.18.0.
910
# npm 11.18.0 bundles: tar 7.5.19 (fixes GHSA-23hp-3jrh-7fpw/GHSA-8x88-c5mf-7j5w),

containers/cli-proxy/Dockerfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ FROM node:22.23.2-alpine3.24
2626
# (Alpine 3.24 ships 8.20.0-r1 by default; the constraint forces the patched build).
2727
# The alpine community repo includes github-cli — we replace it below with the
2828
# official release binary to control the exact Go toolchain and module versions.
29-
RUN apk add --no-cache \
30-
"curl>=8.21.0-r0" \
31-
ca-certificates \
32-
bash
29+
RUN apk upgrade --no-cache \
30+
&& apk add --no-cache \
31+
"curl>=8.21.0-r0" \
32+
ca-certificates \
33+
bash
3334

3435
# Build the pinned GitHub CLI release with the patched Go toolchain.
3536
COPY --from=gh-build /tmp/cli-2.97.0/bin/gh /usr/local/bin/gh

containers/enclave/Dockerfile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
FROM python:3.14.7-alpine3.24 AS enclave-script
44

5-
RUN python3 -c 'import json, pathlib, sys; sys.exit(0)' \
5+
RUN apk upgrade --no-cache \
6+
&& python3 -c 'import json, pathlib, sys; sys.exit(0)' \
67
&& test -x /usr/local/bin/python3 \
78
&& rm -f /sbin/apk
89
COPY enclave/script-entrypoint.py /usr/local/bin/run-enclave-script
@@ -47,7 +48,8 @@ RUN chmod 0555 /usr/local/bin/run-enclave-agent /usr/local/bin/gh \
4748

4849
FROM node:22.23.2-alpine3.24 AS enclave-mcp-server
4950

50-
RUN apk add --no-cache docker-cli \
51+
RUN apk upgrade --no-cache \
52+
&& apk add --no-cache docker-cli \
5153
&& test -x /usr/bin/docker \
5254
&& rm -rf /usr/local/lib/node_modules/npm \
5355
&& rm -f /usr/local/bin/npm /usr/local/bin/npx /usr/local/bin/corepack

0 commit comments

Comments
 (0)