vittoroliveira-dev/coolify-local-security-patch
GitHub: vittoroliveira-dev/coolify-local-security-patch
记录自托管 Coolify 部署中容器镜像的本地安全修复过程及 Trivy 漏洞扫描验证证据,提供完整的 CVE 修复文档与脱敏验证报告。
Stars: 0 | Forks: 0
# Coolify 本地安全补丁
**关于应用于自托管 Coolify 部署的本地安全修复的公开文档。**




## 概述
本仓库记录了自托管 Coolify 技术栈所使用的容器镜像的受控本地修复工作。
它不是官方的 Coolify 发布版本,不是上游分支,也不是供应商维护镜像的通用替代品。它是一份受限的公开记录,包含了本地镜像重建、源码补丁、运行时覆盖以及经过脱敏处理的验证证据。
记录的验证范围是经过过滤仅包含 `HIGH` 和 `CRITICAL` 级别的 Trivy 漏洞扫描,以及针对性的运行时健康检查。它并未声称已消除所有严重级别、扫描器类别、密钥、配置错误或运行时风险。
## 仓库布局
| 路径 | 职责 |
|---|---|
| [`remediations/`](./remediations/) | 针对特定 CVE 的修复包,包含组件本地的 Dockerfile、补丁和报告。 |
| [`reports/`](./reports/) | 经过脱敏处理的当前及历史验证摘要。 |
| [`patches/`](./patches/) | 顶层 compose 或部署补丁文件。 |
| [`PUBLICATION-CHECKLIST.md`](./PUBLICATION-CHECKLIST.md) | 推送到公开 GitHub 前的发布审查清单。 |
| [`SECURITY.md`](./SECURITY.md) | 本仓库的安全处理与披露策略。 |
## 当前范围
| 组件 | 基础镜像 | 当前本地镜像 | 当前状态 |
|---|---|---|---|
| Coolify | `ghcr.io/coollabsio/coolify:4.0.0` / 先前的本地派生版本 | `coolify-local:fullfix-mc-prometheus-phpseclib-20260506` | 已应用完整修复且运行时健康 |
| Realtime / Soketi | `ghcr.io/coollabsio/coolify-realtime:1.0.13` | `coolify-realtime-local:patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean` | 已应用最终 patch22;运行时健康;Trivy 显示 `0 HIGH / 0 CRITICAL`;无混合 Alpine 警告 |
| PostgreSQL | `postgres:15-alpine` | `postgres-local:15-alpine-gosu-patched` | 已记录的本地补丁 |
| Redis | `redis:7-alpine` | `redis-local:7-alpine-gosu-patched` | 已记录的本地补丁 |
| Sentinel | `ghcr.io/coollabsio/sentinel:0.0.21` | `local/coolify-sentinel:0.0.21-go1262-moby2931-patched` | 已记录的源码/API 迁移和本地镜像补丁 |
不在范围内:应用工作负载、无关数据库、反向代理镜像、MinIO 镜像、主机包以及上面未列出的任何容器。
## 当前验证状态
| 已修补镜像 | HIGH / CRITICAL 状态 | 证据 |
|---|---|---|
| `coolify-local:fullfix-mc-prometheus-phpseclib-20260506` | 已验证 `0 / 0` | [`reports/final-coolify-local_fullfix-mc-prometheus-phpseclib-20260506-trivy.txt`](./reports/final-coolify-local_fullfix-mc-prometheus-phpseclib-20260506-trivy.txt) |
| `coolify-realtime-local:patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean` | 已验证 `0 / 0` | [`reports/final-coolify-realtime-local_patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean-trivy.txt`](./reports/final-coolify-realtime-local_patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean-trivy.txt) |
| `postgres-local:15-alpine-gosu-patched` | 已验证 `0 / 0` | [`reports/final-postgres-local_15-alpine-gosu-patched-trivy.txt`](./reports/final-postgres-local_15-alpine-gosu-patched-trivy.txt) |
| `redis-local:7-alpine-gosu-patched` | 已验证 `0 / 0` | [`reports/final-redis-local_7-alpine-gosu-patched-trivy.txt`](./reports/final-redis-local_7-alpine-gosu-patched-trivy.txt) |
| `local/coolify-sentinel:0.0.21-go1262-moby2931-patched` | 已验证 `0 / 0` | [`remediations/sentinel-cve-2026-34040/reports/final-local-coolify-sentinel_go1262-moby2931-patched-trivy.txt`](./remediations/sentinel-cve-2026-34040/reports/final-local-coolify-sentinel_go1262-moby2931-patched-trivy.txt) |
较旧的 Realtime patch11 至 patch21 材料仅作为历史证据,不再是当前的部署目标。
## 2026-05-06 Coolify mc / phpseclib 完整修复
最新的范围内 Coolify 应用审计在正在运行的本地 Coolify 镜像中发现了三个 HIGH 级别的问题:
```
container: coolify
previous image: coolify-local:final-patched-cloudflared-hardened-static
/usr/bin/mc: github.com/prometheus/prometheus v0.303.0
composer-vendor: phpseclib/phpseclib 3.0.51
```
已解决的问题:
```
CVE-2026-42151
CVE-2026-42154
CVE-2026-44167
```
已采纳的修复方案使用 Go `1.26.2` 从源代码重建 MinIO `mc`,强制使用 `github.com/prometheus/prometheus@v0.311.3`,并将 `phpseclib/phpseclib` 更新至 `3.0.52`。最终部署的镜像为:
```
coolify-local:fullfix-mc-prometheus-phpseclib-20260506
```
验证结果:
```
container: coolify
status: running
health: healthy
Trivy: 0 HIGH / 0 CRITICAL
```
修复包记录于:
```
remediations/coolify-mc-prometheus-phpseclib-20260506/
```
## 2026-05-06 Realtime / Soketi 最终 patch22
当前的 Realtime/Soketi 修复方案记录于:
```
remediations/realtime-picomatch-alpine323-clean-20260506/
```
最终的本地镜像为:
```
coolify-realtime-local:patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean
```
已采纳的修正方案在纯净的 Alpine 3.23 上重建 Realtime/Soketi 运行时,保留 Node.js `v18.20.8`,为捆绑的 `uWebSockets.js` 原生二进制文件安装 `gcompat`,强制使用 `picomatch@4.0.4`,保留 `axios@1.15.2`,并从最终的运行时镜像中移除 npm。
验证结果:
```
container: coolify-realtime
status: running
health: healthy
Alpine: 3.23.4
Node.js: v18.20.8
picomatch: 4.0.4
axios: 1.15.2
Trivy: 0 HIGH / 0 CRITICAL
Alpine mix: no mixed-Alpine warning observed
```
## Sentinel 修复
特定于 Sentinel 的材料归类于:
```
remediations/sentinel-cve-2026-34040/
```
当前的 Sentinel 修复方案将源码从已弃用的 `github.com/docker/docker` 模块路径迁移至通过 `docker-v29.3.1` 解析的 Moby API/client 模块,然后重建本地 Sentinel 镜像。
当前的本地 Sentinel 镜像:
```
local/coolify-sentinel:0.0.21-go1262-moby2931-patched
```
参见 [`remediations/sentinel-cve-2026-34040/README.md`](./remediations/sentinel-cve-2026-34040/README.md)。
## 补丁制品
| 组件 | 构建或补丁制品 | 备注 |
|---|---|---|
| Coolify | [`Dockerfile.coolify.final`](./Dockerfile.coolify.final) | 构建包含重建的 `mc` 和 `phpseclib/phpseclib` 3.0.52 的当前完整修复镜像 |
| Coolify 覆盖 | [`patches/docker-compose.custom.coolify-fullfix-20260506.patch`](./patches/docker-compose.custom.coolify-fullfix-20260506.patch) | 从先前的本地 Coolify 镜像到完整修复镜像的本地 compose 覆盖配置 |
| Realtime / Soketi | [`Dockerfile.realtime.patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean`](./Dockerfile.realtime.patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean) | 当前最终 patch22 目标:纯净的 Alpine 3.23、Node 18、gcompat、picomatch 4.0.4 以及 axios 1.15.2 |
| Realtime / Soketi 覆盖 | [`patches/docker-compose.custom.soketi-patch22.patch`](./patches/docker-compose.custom.soketi-patch22.patch) | 指向最终 patch22 镜像的本地 compose 覆盖配置 |
| PostgreSQL | [`Dockerfile.postgres.gosu-patched`](./Dockerfile.postgres.gosu-patched) | 使用本地重建的二进制文件替换 `gosu` |
| Redis | [`Dockerfile.redis.gosu-patched`](./Dockerfile.redis.gosu-patched) | 使用本地重建的二进制文件替换 `gosu` |
| Sentinel | [`remediations/sentinel-cve-2026-34040/Dockerfile.sentinel.go1262-moby2931-patched`](./remediations/sentinel-cve-2026-34040/Dockerfile.sentinel.go1262-moby2931-patched) | 源码/API 迁移与本地重建 |
## 构建可复现性边界
本仓库是一份公开的文档和验证记录。它不是一个完全自包含的重建工具包。
部分 Dockerfile 依赖于未在此处提交的本地构建输入:
| 文件 | 外部/本地先决条件 |
|---|---|
| `Dockerfile.coolify.final` | 网络访问以克隆 `github.com/minio/mc`,对 `golang:1.26.2-alpine` 的 Docker 访问权限,以及本地基础镜像 `coolify-local:final-patched-cloudflared-hardened-static` |
| `Dockerfile.realtime.patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean` | 从工作中的 Realtime 运行时提取的本地 `rebuild-patch22-inputs/`(包含 `node`、`app`、`terminal`、`soketi-entrypoint.sh`、`cloudflared`) |
| `Dockerfile.postgres.gosu-patched` | `gosu-local:rebuilt` |
| `Dockerfile.redis.gosu-patched` | `gosu-local:rebuilt` |
| `remediations/sentinel-cve-2026-34040/Dockerfile.sentinel.go1262-moby2931-patched` | 应用了 Sentinel 补丁的 `sentinel-src/` 源码树 |
为了使第三方能够完全复现构建过程,应发布先决条件镜像经过脱敏处理的构建方案,通过摘要固定基础镜像,并包含每个生成二进制文件的精确构建命令和校验和。
## 验证命令
当前镜像集的示例验证命令:
```
trivy image --scanners vuln --severity HIGH,CRITICAL --exit-code 1 coolify-local:fullfix-mc-prometheus-phpseclib-20260506
trivy image --scanners vuln --severity HIGH,CRITICAL --exit-code 1 coolify-realtime-local:patch22-node18-gcompat-axios1152-picomatch404-alpine323-clean
trivy image --scanners vuln --severity HIGH,CRITICAL --exit-code 1 postgres-local:15-alpine-gosu-patched
trivy image --scanners vuln --severity HIGH,CRITICAL --exit-code 1 redis-local:7-alpine-gosu-patched
trivy image --scanners vuln --severity HIGH,CRITICAL --exit-code 1 local/coolify-sentinel:0.0.21-go1262-moby2931-patched
```
Realtime 运行时验证:
```
docker inspect coolify-realtime --format 'image={{.Config.Image}} status={{.State.Status}} health={{if .State.Health}}{{.State.Health.Status}}{{else}}none{{end}} restartCount={{.RestartCount}}'
docker exec coolify-realtime sh -lc '
cat /etc/os-release
apk list -I | grep -E "^nghttp2-libs-"
node -v
/usr/local/bin/cloudflared --version
'
```
## 发布安全
本仓库不应包含:
- 原始的生产日志;
- 私钥;
- 运行时令牌;
- 数据库转储;
- `.env` 文件;
- 特定于主机的敏感配置。
在发布之前,请手动审查暂存的文件并运行本地密钥扫描。
示例 grep 检查:
```
grep -RInE '([T]OKEN=|[P]ASSWORD=|[P]ASS=|[S]ECRET=|[P]RIVATE_KEY|BEGIN [A-Z ]*PRIVATE KEY|[D]ATABASE_URL|[P]OSTGRES_PASSWORD|[R]EDIS_PASSWORD|[G]ITHUB_TOKEN|[g]hp_|[g]ithub_pat_|[e]yJ[A-Za-z0-9_-]{20,})' . --exclude-dir=.git || true
```
## 免责声明
本仓库未声明:
- 这些补丁是官方的 Coolify 修复;
- 上游已审查或接受它们;
- 每个扫描器都会产生一致的结果;
- 每个严重级别或漏洞类别已被消除;
- 除已记录的检查之外,已证实具备长期的生产稳定性;
- 历史上的 Realtime/Soketi patch12 至 patch21 尝试是推荐的部署目标。标签:CISA项目, Coolify, CVE修复, DevSecOps, DNS 反向解析, Docker, MITM代理, Web截图, 上游代理, 安全合规, 安全防御评估, 容器安全, 提示词注入, 搜索引擎查询, 日志审计, 测试用例, 漏洞修复, 版权保护, 端点安全, 网络代理, 网络安全培训, 自托管, 补丁管理, 请求拦截, 验证报告