Skip to content

fix: upgrade packages in agent container to mitigate CVE-2023-44487#760

Merged
Mossaka merged 1 commit intomainfrom
fix/http2-rapid-reset
Feb 12, 2026
Merged

fix: upgrade packages in agent container to mitigate CVE-2023-44487#760
Mossaka merged 1 commit intomainfrom
fix/http2-rapid-reset

Conversation

@Mossaka
Copy link
Collaborator

@Mossaka Mossaka commented Feb 12, 2026

Summary

  • Adds an apt-get upgrade -y step in the agent container Dockerfile after the main package installation to pick up all available security patches
  • Addresses CVE-2023-44487 (HTTP/2 Rapid Reset Attack) affecting the nodejs package (22.22.0-1nodesource1) in the agent container
  • While this CVE primarily affects HTTP/2 server implementations and the agent container acts as a client, upgrading is the recommended defense-in-depth approach

Test plan

  • Verify agent container builds successfully with the upgrade step
  • Run integration tests to confirm no regressions
  • Rebuild container image and verify with trivy image that CVE-2023-44487 is resolved or mitigated

🤖 Generated with Claude Code

Add an apt-get upgrade step after the main package installation in the
agent Dockerfile. This ensures all base image packages (including
Node.js) receive the latest security patches, addressing the HTTP/2
Rapid Reset Attack vulnerability (CVE-2023-44487) and other known CVEs.

While this CVE primarily affects HTTP/2 server implementations and the
agent container acts as a client, upgrading packages is the most robust
defense-in-depth approach.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 12, 2026 20:13
@github-actions
Copy link
Contributor

github-actions bot commented Feb 12, 2026

Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 12, 2026

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions
Copy link
Contributor

github-actions bot commented Feb 12, 2026

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@github-actions
Copy link
Contributor

github-actions bot commented Feb 12, 2026

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions
Copy link
Contributor

✅ Coverage Check Passed

Overall Coverage

Metric Base PR Delta
Lines 82.26% 82.42% 📈 +0.16%
Statements 82.31% 82.47% 📈 +0.16%
Functions 82.14% 82.14% ➡️ +0.00%
Branches 74.70% 74.80% 📈 +0.10%
📁 Per-file Coverage Changes (1 files)
File Lines (Before → After) Statements (Before → After)
src/docker-manager.ts 83.5% → 84.2% (+0.67%) 83.0% → 83.6% (+0.65%)

Coverage comparison generated by scripts/ci/compare-coverage.ts

@github-actions github-actions bot mentioned this pull request Feb 12, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds an apt-get upgrade -y step to the agent container Dockerfile to mitigate CVE-2023-44487 (HTTP/2 Rapid Reset Attack) and other security vulnerabilities by upgrading all installed packages to their latest available versions.

Changes:

  • Adds package upgrade step after initial package installation in agent Dockerfile to pick up security patches
  • Includes explanatory comment documenting the security rationale (CVE-2023-44487)
Comments suppressed due to low confidence (2)

containers/agent/Dockerfile:38

  • Consider the tradeoffs of using apt-get upgrade versus the existing no-cache: true approach in the release workflow. The release.yml workflow (line 104) already uses no-cache: true specifically to ensure security-critical packages are freshly installed. Adding apt-get upgrade provides an additional layer but may introduce reproducibility concerns since package versions can change between builds even with the same Dockerfile. Consider whether both approaches are needed, or if updating the base image version periodically would be more predictable. Also note that CVE-2023-44487 is from 2023 and should already be patched in Ubuntu 22.04 repositories - if Trivy is still reporting it, investigate whether it's a false positive or if the base image needs updating.
# Upgrade all packages to pick up security patches
# Addresses CVE-2023-44487 (HTTP/2 Rapid Reset) and other known vulnerabilities
RUN apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/*

containers/agent/Dockerfile:38

  • The --no-install-recommends flag is missing from the upgrade command, which is inconsistent with the existing package installation patterns in this Dockerfile (lines 16, 75) and the squid Dockerfile. While apt-get upgrade doesn't typically install new recommended packages, using the flag explicitly maintains consistency with the codebase's minimalist container philosophy and makes the intent clear.
RUN apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/*

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +36 to +38
# Upgrade all packages to pick up security patches
# Addresses CVE-2023-44487 (HTTP/2 Rapid Reset) and other known vulnerabilities
RUN apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/*
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Dockerfile.minimal (used for chroot mode) should also receive the same apt-get upgrade step for consistency. While chroot mode relies more on host binaries, the minimal image still includes iptables, iproute2, and git packages that could have security vulnerabilities. Consider adding the same upgrade step after the package installation in Dockerfile.minimal (after line 19).

This issue also appears in the following locations of the same file:

  • line 36
  • line 38

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Contributor

Build Test: Rust - ❌ FAILED

Error: Rust toolchain not available in execution environment.

The cargo command is required to build and test Rust projects but was not found in PATH.

Required Action

Add Rust toolchain setup to the workflow before running this test:

- name: Setup Rust
  uses: dtolnay/rust-toolchain@stable
  
- name: Add Cargo to PATH
  run: |
    CARGO_HOME="${CARGO_HOME:-$HOME/.cargo}"
    echo "$CARGO_HOME/bin" >> $GITHUB_PATH

Test Status

Project Build Tests Status
fd - FAILED (cargo not found)
zoxide - FAILED (cargo not found)

Overall: ❌ FAILED

AI generated by Build Test Rust

@github-actions
Copy link
Contributor

Smoke Test Results (Run #21962603496)

Last 2 merged PRs:

✅ GitHub MCP: Retrieved PR data
✅ Playwright: Verified page title contains "GitHub"
✅ File write: Created test file
✅ Bash: Verified file contents

Status: PASS 🎉

cc @Mossaka

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

Bun Build Test Results

Project Install Tests Status
elysia 1/1 PASS ✅
hono 1/1 PASS ✅

Overall: PASS ✅

All Bun projects built and tested successfully.

AI generated by Build Test Bun

@github-actions
Copy link
Contributor

Go Build Test Results

Project Download Tests Status
color 1/1 PASS
env 1/1 PASS
uuid 1/1 PASS

Overall: PASS

All Go projects successfully downloaded dependencies and passed tests.

AI generated by Build Test Go

@github-actions
Copy link
Contributor

C++ Build Test Results

Project CMake Build Status
fmt PASS
json PASS

Overall: PASS

All C++ projects built successfully.

AI generated by Build Test C++

@github-actions
Copy link
Contributor

.NET Build Test Results

Project Restore Build Run Status
hello-world PASS
json-parse PASS

Overall: PASS

All .NET projects successfully restored, built, and ran.

AI generated by Build Test .NET

@github-actions
Copy link
Contributor

Deno Build Test Results

Project Tests Status
oak 1/1 ✅ PASS
std 1/1 ✅ PASS

Overall: ✅ PASS

All Deno tests completed successfully.

AI generated by Build Test Deno

@github-actions
Copy link
Contributor

Smoke Test Results

Last 2 merged PRs:

✅ GitHub MCP - Retrieved PRs
✅ Playwright - Navigated to github.com (title: "GitHub · Change is constant. GitHub keeps you ahead. · GitHub")
✅ File Write - Created /tmp/gh-aw/agent/smoke-test-claude-21962603450.txt
✅ Bash - Verified file content

Status: PASS

AI generated by Smoke Claude

@github-actions
Copy link
Contributor

🟢 Build Test: Node.js - PASS

All Node.js projects built and tested successfully!

Project Install Tests Status
clsx PASS
execa PASS
p-limit PASS

Overall: PASS

AI generated by Build Test Node.js

@github-actions
Copy link
Contributor

GitHub MCP merged PRs: ✅ fix: review recommendations for PR #720; ✅ fix: eliminate nested bash layer in chroot command execution for Java/.NET
safeinputs-gh pr list: ✅ fix: replace unanchored regex with string assertions in tests; ✅ fix: eliminate TOCTOU race conditions in ssl-bump.ts
Playwright github.com title: ✅
Tavily search: ❌ (tool unavailable)
File write: ✅
Bash cat: ✅
Discussion query+comment: ✅
Build npm ci && npm run build: ✅
Overall: FAIL

AI generated by Smoke Codex

@github-actions
Copy link
Contributor

Build Test: Java - Results

Project Compile Tests Status
gson 1/1 PASS
caffeine 1/1 PASS

Overall: PASS

All Java projects compiled successfully and all tests passed.

AI generated by Build Test Java

@github-actions
Copy link
Contributor

Chroot Version Comparison Results

Runtime Host Version Chroot Version Match?
Python 3.12.12 3.12.3 ❌ NO
Node.js v24.13.0 v20.20.0 ❌ NO
Go go1.22.12 go1.22.12 ✅ YES

Overall Status: ❌ Tests Failed

The chroot mode successfully accessed host runtimes, but version mismatches were detected for Python and Node.js. Only Go versions matched between host and chroot environments.

AI generated by Smoke Chroot

@Mossaka Mossaka merged commit aa784eb into main Feb 12, 2026
99 checks passed
@Mossaka Mossaka deleted the fix/http2-rapid-reset branch February 12, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant