Skip to content

Commit c866a04

Browse files
adilhafeezclaude
andcommitted
Fix 27 HIGH vulnerabilities found by Trivy Docker scan
- Install supervisor via pip instead of apt to eliminate 22 Debian python3.13 package vulnerabilities - Pin urllib3>=2.6.3 to fix CVE-2025-66418, CVE-2025-66471, CVE-2026-21441 - Add ignore-unfixed to Trivy scan to suppress unfixable glibc CVE-2026-0861 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4aa7bd5 commit c866a04

4 files changed

Lines changed: 13 additions & 5 deletions

File tree

.github/workflows/docker-security-scan.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
format: table
3737
# Fail on PRs so vulnerabilities block merge; on main just report
3838
exit-code: ${{ github.event_name == 'pull_request' && '1' || '0' }}
39+
ignore-unfixed: true
3940
severity: CRITICAL,HIGH
4041

4142
- name: Run Trivy scanner (SARIF for GitHub Security tab)
@@ -45,6 +46,7 @@ jobs:
4546
image-ref: ${{ env.DOCKER_IMAGE }}:scan
4647
format: sarif
4748
output: trivy-results.sarif
49+
ignore-unfixed: true
4850
severity: CRITICAL,HIGH
4951

5052
- name: Upload Trivy results to GitHub Security tab

Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ FROM python:3.13.11-slim AS arch
4646

4747
RUN set -eux; \
4848
apt-get update; \
49-
apt-get install -y --no-install-recommends supervisor gettext-base curl; \
49+
apt-get install -y --no-install-recommends gettext-base curl; \
5050
apt-get clean; rm -rf /var/lib/apt/lists/*
5151

52+
RUN pip install --no-cache-dir supervisor
53+
5254
# Remove PAM packages (CVE-2025-6020)
5355
RUN set -eux; \
5456
dpkg -r --force-depends libpam-modules libpam-modules-bin libpam-runtime libpam0g || true; \
@@ -70,6 +72,7 @@ RUN uv run pip install --no-cache-dir .
7072
COPY cli/planoai planoai/
7173
COPY config/envoy.template.yaml .
7274
COPY config/plano_config_schema.yaml .
75+
RUN mkdir -p /etc/supervisor/conf.d
7376
COPY config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
7477

7578
COPY --from=wasm-builder /arch/target/wasm32-wasip1/release/prompt_gateway.wasm /etc/envoy/proxy-wasm-plugins/prompt_gateway.wasm
@@ -81,4 +84,4 @@ RUN mkdir -p /var/log/supervisor && \
8184
/var/log/access_ingress.log /var/log/access_ingress_prompt.log \
8285
/var/log/access_internal.log /var/log/access_llm.log /var/log/access_agent.log
8386

84-
ENTRYPOINT ["/usr/bin/supervisord"]
87+
ENTRYPOINT ["/usr/local/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

cli/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ dependencies = [
1414
"questionary>=2.1.1,<3.0.0",
1515
"pyyaml>=6.0.2,<7.0.0",
1616
"requests>=2.31.0,<3.0.0",
17+
"urllib3>=2.6.3",
1718
"rich>=14.2.0",
1819
"rich-click>=1.9.5",
1920
]

cli/uv.lock

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)