Warn or block when OCI storage uses result-derived registry without storage.oci.repository

Abierto
#1,664 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@ahmedbektic ya está trabajando en esto.

Desde el 2/10/2026.

  • #2027 de @ahmedbektic — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
62/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
go
Área
security

Línea de trabajo

Comienza siguiendo la ruta de inicio del controller y el manejo de la configuración del almacenamiento OCI, centrándote en cómo se detecta la ausencia de storage.oci.repository. Confirma el comportamiento existente del registry derivado del resultado e identifica los puntos de entrada relevantes del proyecto para logging o tests. Se considera terminado cuando aparece una advertencia si el almacenamiento OCI está habilitado sin la configuración del repository, sin cambiar el comportamiento existente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

kind/feature

Summary

When OCI storage is enabled without storage.oci.repository, Chains derives the destination registry from TaskRun results (*IMAGE_URL / *IMAGE_DIGEST). This means pipeline authors control which registry host the Chains controller makes outbound requests to — an SSRF/egress concern in multi-tenant clusters.

The storage.oci.repository config already mitigates this by overriding result-derived registries, but it's not required and there's no warning when it's absent.

Proposal

  1. Log a warning at controller startup when OCI storage is enabled without storage.oci.repository configured — something like: "OCI storage is using result-derived registries. In multi-tenant deployments, set storage.oci.repository to restrict the destination registry."
  2. Consider a future option like storage.oci.allow-result-derived-registry: true|false (default true for backwards compatibility) that lets operators explicitly opt in or out of result-derived registries.

Context

Validated on a live cluster: a TaskRun with IMAGE_URL pointing to an internal service caused the Chains controller to make outbound OCI registry requests (GET /v2/, GET /v2/.../manifests/...) to that host from the controller's network context.

The existing storage.oci.repository config is the right fix, but it should be framed as security-critical for multi-tenant deployments in documentation (#1661).

Related: #1661 (trust model documentation)

/kind feature

Lenguaje dominante
Go
Estrellas
279
Forks
171
Merge medio
2 d 4 h
PR fusionados (30 d)
70

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de tektoncd/chains

Todos los issues de tektoncd/chains

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.