hcengineering / hcengineering/platform

Base Docker images ship git 1:2.39.5-0+deb12u2 (CVE-2025-48384, CISA KEV) — fix is already available upstream, just needs a base-image rebuild

Open
#11,024 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
27.7k
Forks
2.2k
PR merge metrics
No merged PRs in 30d

Description

### Summary

The `front`, `server` (transactor), and `rekoni` runtime images published under `hardcoreeng/*` currently ship a version of `git` affected by **CVE-2025-48384** (incomplete carriage-return sanitization in `.gitmodules` path handling, allowing arbitrary file write / RCE via `git clone --recurse-submodules` against a crafted repository with a symlinked `.git/hooks` path). This CVE was added to CISA's Known Exploited Vulnerabilities (KEV) catalog on 2025-08-25 as actively exploited in the wild.

### What we found

Scanning the currently published images:

| Image | git version found | Fixed in |
|---|---|---|
| `hardcoreeng/front:v0.7.423` | `1:2.39.5-0+deb12u2` | `1:2.39.5-0+deb12u3` |
| `hardcoreeng/transactor:v0.7.423` | `1:2.39.5-0+deb12u2` | `1:2.39.5-0+deb12u3` |
| `hardcoreeng/rekoni-service:v0.7.423` | `1:2.39.5-0+deb12u1` | `1:2.39.5-0+deb12u3` |

The same vulnerable versions are present identically in `v0.7.432`, the newest tag currently published (checked directly via image inspection) — there is no newer released version that already fixes this.

### Root cause

`dev/base-image/base.Dockerfile`, `dev/base-image/front.Dockerfile`, and `dev/base-image/rekoni.Dockerfile` all build `FROM node:22` (the full/non-slim Debian 12 "bookworm" Node image), which inherits `git`, `git-man`, and other `buildpack-deps` tooling. These three Dockerfiles are unchanged between `v0.7.423`, `v0.7.432`, and current `main` — no fix has landed. The last time the `hardcoreeng/base` / `front-base` / `rekoni-base` images were rebuilt and re-tagged appears to be around 2025-09-16 (`v20250916`, introduced in #9854/#9855/#9874), roughly a year before this report; nothing since has bumped that pin.

The other 10 published component images (`account`, `calendar`, `collaborator`, `fulltext`, `github`, `gmail`, `hulykvs`, `stats`, `telegram`, `workspace`) build `FROM hardcoreeng/base-slim`, which is based on `node:22-slim` and never had `git` installed in the first place — those are unaffected.

### The fix is trivial and already available — no waiting on Debian

- Debian's security tracker lists CVE-2025-48384 as **fixed** for bookworm at `1:2.39.5-0+deb12u3`, already shipped in the regular `bookworm` package suite (not stuck behind a future point release).
- We confirmed a fresh `docker pull node:22` today already includes `git 1:2.39.5-0+deb12u3` — the patched version — because Docker's official Node image tracks Debian's bookworm archive on an ongoing basis.
- In other words: **no Dockerfile code change is required.** Simply rebuilding `hardcoreeng/base`, `hardcoreeng/front-base`, and `hardcoreeng/rekoni-base` from `dev/base-image/*.Dockerfile` against a fresh `node:22` pull today, re-tagging (e.g. `v20260825` or similar), bumping the version pin referenced in `pods/server/Dockerfile`, `pods/front/Dockerfile`, and `services/rekoni/Dockerfile`, and rebuilding/republishing those three app images would resolve this.
- We also test-checked that force-upgrading just the `git`/`git-man` packages inside the current `front`, `transactor`, and `rekoni-service` images (`apt-get install -y --only-upgrade git`) is a clean, self-contained bump with zero additional installs/removals and no dependency conflicts — so even a narrower one-line patch layer on top of the existing images would be low-risk if a full base-image rebuild isn't convenient right away.

### Ask

Could the base images be rebuilt against current Debian package indices and republished (with a corresponding patch release of `front`, `transactor`/`server`, and `rekoni-service`)? Given how stale the `v20250916` base-image pin now is, it might also be worth adding a periodic (e.g. monthly) rebuild of the `dev/base-image/*` images to CI so base OS packages don't drift this far again.

Happy to open a PR bumping the base-image tag references if that's useful — let me know.

---

_Note: none of the three affected services (front, transactor, rekoni) were found to invoke `git clone`/checkout against externally-supplied repository content in their source — git is present only as an inherited base-image artifact, not something the application code calls. This report is about image hygiene / CVE-scanner noise, not a claim of an active exploit path in Huly itself._

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with dev/base-image/base.Dockerfile, dev/base-image/front.Dockerfile, and dev/base-image/rekoni.Dockerfile, then inspect the version references in pods/server/Dockerfile, pods/front/Dockerfile, and services/rekoni/Dockerfile. Rebuild the affected base images from a fresh node:22 pull, update the referenced base-image tag, and republish the front, transactor/server, and rekoni images. Verify the published images contain git 1:2.39.5-0+deb12u3 or newer.

Written by the indexing model from the issue text.

Assessment

Tech stack
debian, docker, git, node.js
Domain
devops, infrastructure, release, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.