Skip to content

[Snyk] Security upgrade node from 22-slim to 22.22.1-trixie-slim#2445

Closed
Yeraze wants to merge 1 commit intomainfrom
snyk-fix-1f024c35e6785b1b18f8f8f92409555e
Closed

[Snyk] Security upgrade node from 22-slim to 22.22.1-trixie-slim#2445
Yeraze wants to merge 1 commit intomainfrom
snyk-fix-1f024c35e6785b1b18f8f8f92409555e

Conversation

@Yeraze
Copy link
Copy Markdown
Owner

@Yeraze Yeraze commented Mar 26, 2026

snyk-top-banner

Snyk has created this PR to fix 4 vulnerabilities in the dockerfile dependencies of this project.

Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.

Snyk changed the following file(s):

  • Dockerfile.armv7

We recommend upgrading to node:22.22.1-trixie-slim, as this image has only 27 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.

Vulnerabilities that will be fixed with an upgrade:

Issue Score
critical severity Integer Overflow or Wraparound
SNYK-DEBIAN12-ZLIB-6008963
  500  
medium severity Improper Access Control
SNYK-DEBIAN12-SYSTEMD-15656988
  371  
medium severity Improper Access Control
SNYK-DEBIAN12-SYSTEMD-15656988
  371  
low severity Improper Input Validation
SNYK-DEBIAN12-GNUTLS28-1547121
  257  
low severity CVE-2026-4438
SNYK-DEBIAN12-GLIBC-15754000
  221  

Important

  • Check the changes in this PR to ensure they won't cause issues with your project.
  • Max score is 1000. Note that the real score may have changed since the PR was raised.
  • This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic


Learn how to fix vulnerabilities with free interactive lessons:

🦉 Integer Overflow or Wraparound
🦉 Improper Access Control
🦉 Improper Input Validation

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

Claude finished @Yeraze's task —— View job


PR Security Review ✅

Reviewing this Snyk security upgrade PR that updates the Node.js base image to fix vulnerabilities.

Task List:

  • Read and analyze the Dockerfile changes
  • Review project guidelines for Docker/security practices
  • Evaluate security vulnerabilities being fixed
  • Assess potential compatibility and performance impacts
  • Provide comprehensive review feedback

Review Summary

✅ APPROVED - This is a straightforward and beneficial security upgrade that should be merged.

Code Quality & Best Practices

Excellent - The changes are minimal and follow Docker best practices:

  • Uses pinned version tags (22.22.1-trixie-slim) instead of floating tags - this is a security best practice
  • Consistently updates both build and production stages
  • Maintains the established ARMv7-specific architecture requirements
  • Follows the project's pattern (main Dockerfile uses node:24.14.0-alpine3.22 with specific versioning)

Security Assessment

Strong Improvement - Fixes 4 significant vulnerabilities:

  • CRITICAL: Integer Overflow in zlib (Score: 500) - High priority fix
  • HIGH: Improper Access Control in systemd (Score: 371, 2 instances)
  • MEDIUM: Input Validation in gnutls28 (Score: 257)
  • MEDIUM: CVE-2026-4438 in glibc (Score: 221)

The new base image (node:22.22.1-trixie-slim) reduces vulnerabilities from unknown count to 27 known vulnerabilities, representing a significant security improvement.

Compatibility & Performance Analysis

Low Risk - This upgrade should have minimal impact:

✅ Compatibility:

  • Stays within Node.js 22 LTS (22-slim → 22.22.1-trixie-slim)
  • No breaking changes to Node.js runtime or APIs
  • ARMv7 architecture support maintained (critical for Raspberry Pi 2/3)
  • Debian base transitions from previous Debian to Trixie (Debian 13) - generally backward compatible

✅ Performance:

  • Similar performance characteristics expected
  • Trixie-slim maintains minimal footprint philosophy
  • No additional dependencies or layer bloat introduced

⚠️ Potential Concerns:

  • Debian version change (→ Trixie) could have different package versions, but this is typical for security updates
  • The comment on line 2 documents why Node.js 22 is used (# Node.js 24 doesn't support ARMv7)

Testing Recommendations

Since this is a security-focused infrastructure change:

  1. Build Test: Verify the Docker build completes successfully for ARMv7
  2. Runtime Test: Confirm MeshMonitor starts and basic functionality works
  3. Dependency Test: Ensure better-sqlite3 and other native modules still compile correctly

The project's CLAUDE.md indicates testing should be done via docker-compose.dev.yml and system tests at tests/system-tests.sh.

Missing Elements

None - This PR appropriately focuses solely on the security upgrade without unnecessary scope creep.

Recommendation

MERGE immediately after basic build/runtime verification. Security vulnerabilities (especially the Critical-rated zlib issue) should be patched promptly.

The changes are minimal, well-targeted, and follow established Docker best practices. The ARMv7-specific nature of this Dockerfile is properly maintained.


Yeraze added a commit that referenced this pull request Mar 26, 2026
Pins the Node.js base image to 22.22.1-bookworm-slim to fix 4 Snyk
vulnerabilities (critical zlib integer overflow, medium systemd access
control, low gnutls input validation).

Uses bookworm-slim instead of trixie-slim (proposed by Snyk in PR #2445)
because trixie-slim does NOT publish an arm/v7 manifest and would break
ARMv7 builds for Raspberry Pi 2/3.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Yeraze
Copy link
Copy Markdown
Owner Author

Yeraze commented Mar 26, 2026

Closing in favor of #2446

@Yeraze Yeraze closed this Mar 26, 2026
Yeraze added a commit that referenced this pull request Mar 26, 2026
Pins the Node.js base image to 22.22.1-bookworm-slim to fix 4 Snyk
vulnerabilities (critical zlib integer overflow, medium systemd access
control, low gnutls input validation).

Uses bookworm-slim instead of trixie-slim (proposed by Snyk in PR #2445)
because trixie-slim does NOT publish an arm/v7 manifest and would break
ARMv7 builds for Raspberry Pi 2/3.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants