Total CVEs
42
7 imágenes · 3 ignorados
Críticos
4
CVSS ≥ 9.0
Altos
11
CVSS 7.0–8.9
Medios
19
CVSS 4.0–6.9
Bajos
8
CVSS < 4.0
Con fix
31
73% resoluble ahora
Estado por imagen de contenedor
datasphere/api :v2.4.1
CRIT 2
HIGH 4
MED 7
LOW 2
node:18-alpine · OpenSSL 3.0.2 · curl 7.88.1
datasphere/worker :v2.4.1
CRIT 2
HIGH 3
MED 5
LOW 3
python:3.11-slim · libssl 3.0.2 · urllib3 1.26.12
nginx :1.25.3
HIGH 3
MED 4
LOW 2
debian:bookworm-slim · OpenSSL 3.0.11 · zlib 1.2.13
datasphere/frontend :v2.4.1
HIGH 1
MED 2
LOW 1
node:18-alpine · vite 4.3.1 · react 18.2.0
postgres :15.4
MED 1
LOW 0
OK
debian:bookworm · Sin CVEs críticos/altos
node :18-alpine
Sin críticos
LOW 0
alpine:3.18 · node 18.19.1 · npm 10.2.4
CVEs Críticos y Altos — Requieren acción inmediata
Vulnerabilidades prioritarias (CVSS ≥ 7.0)
15 de 42 total · ordenado por CVSS desc · 3 ignorados en .grype.yaml
| CVE | Severidad | CVSS | EPSS | Paquete | Versión actual | Fix disponible | Imagen afectada | Descripción |
|---|---|---|---|---|---|---|---|---|
| CVE-2024-0727 | Crítico | 9.8 | 38.2% | openssl | 3.0.2-0ubuntu1.14 | 3.0.2-0ubuntu1.15 | api worker | PKCS12 null-pointer dereference → DoS / RCE potencial |
| CVE-2023-44487 | Crítico | 9.8 | 55.7% | nghttp2 | 1.51.0-1 | 1.57.0-1 | api nginx | HTTP/2 Rapid Reset Attack (CVSS máximo explorado activamente) |
| CVE-2023-5363 | Crítico | 9.1 | 22.4% | openssl | 3.0.2 | 3.1.4 | worker | Incorrect cipher key and IV length processing en EVP_EncryptInit_ex2 |
| CVE-2024-2408 | Crítico | 9.1 | 18.9% | curl | 7.88.1-10+deb12u4 | 8.7.1 | api | HTTP/2 CONTINUATION flood → DoS remoto sin autenticación |
| CVE-2024-5535 | Alto | 8.6 | 8.1% | openssl | 3.0.11 | 3.0.14 | nginx | SSL_select_next_proto buffer overread → info leak / OOB read |
| CVE-2023-48795 | Alto | 8.1 | 12.3% | openssh | 9.3p1 | 9.6p1 | api worker | Terrapin attack — truncación del handshake SSH via ChaCha20-Poly1305 |
| CVE-2023-46218 | Alto | 8.1 | 5.6% | curl | 7.88.1 | 8.4.0 | api | Mixed-case cookie injection → cookie exfiltration en requests HTTPS |
| CVE-2023-45853 | Alto | 7.8 | 3.4% | zlib | 1.2.11 | 1.3.0 | nginx worker | MiniZip integer overflow → heap buffer overflow al comprimir archivos |
| CVE-2024-4603 | Alto | 7.5 | 4.8% | openssl | 3.0.2 | 3.2.2 | api worker | Excesivo procesado de parámetros DSA → DoS en TLS handshake |
| CVE-2023-40217 | Alto | 7.5 | 6.2% | python3.11 | 3.11.4 | 3.11.5 | worker | SSLSocket pre-close data bypass → elude verificación TLS en servidores |
| CVE-2024-3094 | Alto | 7.2 | 9.0% | xz-utils | 5.4.5 | 5.4.6 | worker | XZ/liblzma supply-chain backdoor (CISA KEV) — remover paquete si no usado |
| CVE-2023-29491 | Alto | 7.1 | 2.1% | ncurses | 6.4 | 6.4-20230715 | api worker | Local memory corruption vía variables TERMINFO malformadas |
| CVE-2024-28834 | Alto | 7.0 | 1.8% | gnutls38 | 3.7.9 | 3.8.4 | nginx | Timing side-channel en ECDH con clave privada → key recovery |
| CVE-2024-1737 | Alto | 7.0 | 1.2% | bind9 | 9.18.19 | 9.18.28 | api | Resolver cache llenado excesivo → degrado de rendimiento / DoS |
| CVE-2024-6387 | Alto | 7.0 | 14.6% | openssh | 9.3p1 | 9.8p1 | api worker | regreSSHion — race condition en signal handler → RCE remoto sin auth |
Configuración generada para DataSphere CI/CD
GitHub Actions
.github/workflows/security.yml
name: Vulnerability Scan on: [push, pull_request] jobs: grype-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build datasphere/api run: docker build -t datasphere/api:${{ github.sha }} ./api - name: Generate SBOM uses: anchore/sbom-action@v0 with: image: datasphere/api:${{ github.sha }} output-file: sbom.spdx.json - name: Scan vulnerabilities uses: anchore/scan-action@v4 id: scan with: image: datasphere/api:${{ github.sha }} fail-build: true severity-cutoff: high output-format: sarif - name: Upload to GitHub Security if: always() uses: github/codeql-action/upload-sarif@v3 with: sarif_file: ${{ steps.scan.outputs.sarif }}
Grype Config
.grype.yaml
# DataSphere Analytics — Grype config v1.0 fail-on-severity: high db: auto-update: true validate-age: true max-allowed-built-age: 120h ignore: # CVE-2023-12345 — no usamos la feature afectada - vulnerability: CVE-2023-12345 reason: "Feature no utilizada en datasphere/api" # Dependencias solo en tests no llegan a prod - package: location: "**/test/**" reason: "No llegan a la imagen de producción" # Aislado en red interna — sin exposición pública - vulnerability: CVE-2024-1737 package: name: bind9 reason: "DNS bind9 solo escucha en red interna Docker" output: - table - sarif - json
Plan de remediación priorizado
P1
Actualizar imagen base api/worker — OpenSSL + nghttp2
CVE-2024-0727 + CVE-2023-44487 (CVSS 9.8 · explotados activamente). Cambiar FROM a node:20-alpine3.19 y python:3.12-slim-bookworm que incluyen las versiones parchadas.
FROM node:20-alpine3.19 # api | FROM python:3.12-slim-bookworm # worker
Esfuerzo
Bajo
~30 min
P1
Parchear OpenSSH — CVE-2024-6387 (regreSSHion) RCE sin auth
Vulnerabilidad crítica OpenSSH 9.3p1. Actualizar a 9.8p1 vía apt-get en Dockerfile. Si OpenSSH no es necesario en el contenedor, eliminar el paquete completamente.
RUN apt-get install -y openssh-server=1:9.8p1-1 # o bien: apt-get remove openssh-server
Esfuerzo
Bajo
~15 min
P1
Eliminar xz-utils del worker — CVE-2024-3094 supply-chain backdoor
xz-utils 5.4.5 contiene backdoor en CISA KEV. Si la compresión XZ es necesaria, usar la versión 5.4.6 limpia. Si no se usa, eliminar el paquete del contenedor.
RUN apt-get remove -y xz-utils && apt-get autoremove -y
Esfuerzo
Bajo
~10 min
P2
Actualizar nginx a 1.26.1 + parchear OpenSSL 3.0.14
CVE-2024-5535 + CVE-2023-44487 en nginx. Usar imagen oficial nginx:1.26.1-alpine que incluye OpenSSL 3.3.0 y nghttp2 actualizado. Validar configuraciones en staging.
FROM nginx:1.26.1-alpine # resuelve CVE-2024-5535, CVE-2023-44487, CVE-2024-28834
Esfuerzo
Medio
~2h (tests)
P2
Actualizar curl a 8.7.1 en imagen api
CVE-2024-2408 + CVE-2023-46218. Actualizar curl vía apt-get en el Dockerfile o usar una imagen base más reciente que incluya curl parchado.
RUN apt-get update && apt-get install -y --no-install-recommends curl=8.7.1-1
Esfuerzo
Bajo
~20 min
P3
Migrar a imágenes distroless para reducir superficie de ataque
A medio plazo, migrar datasphere/api y datasphere/worker a Google Distroless o Chainguard Images. Reduce el número de paquetes de ~120 a ~15, eliminando la mayoría de CVEs de sistema operativo.
FROM gcr.io/distroless/nodejs20-debian12 # api | FROM cgr.dev/chainguard/python:latest-dev # worker
Esfuerzo
Alto
~1 sprint