vittoroliveira-dev/coolify-local-security-patch

GitHub: vittoroliveira-dev/coolify-local-security-patch

记录自托管 Coolify 部署中容器镜像的本地安全修复过程及 Trivy 漏洞扫描验证证据,提供完整的 CVE 修复文档与脱敏验证报告。

Stars: 0 | Forks: 0

# Coolify 本地安全补丁 **关于应用于自托管 Coolify 部署的本地安全修复的公开文档。** ![安全](https://img.shields.io/badge/security-focused-111827?style=for-the-badge) ![Trivy](https://img.shields.io/badge/Trivy-HIGH%200%20%7C%20CRITICAL%200-16a34a?style=for-the-badge) ![Coolify](https://img.shields.io/badge/Coolify-local%20remediation-2563eb?style=for-the-badge) ![状态](https://img.shields.io/badge/status-local%20patched-0f766e?style=for-the-badge)
## 概述 本仓库记录了自托管 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截图, 上游代理, 安全合规, 安全防御评估, 容器安全, 提示词注入, 搜索引擎查询, 日志审计, 测试用例, 漏洞修复, 版权保护, 端点安全, 网络代理, 网络安全培训, 自托管, 补丁管理, 请求拦截, 验证报告