CVE-2026-82976 in OpenShift Container Platforminformación

Resumen

por VulDB • 2026-11-03

Se ha encontrado un fallo en el controlador de personalización de imágenes (image-customization-controller) utilizado en la pila de aprovisionamiento para hardware bare metal de OpenShift. El registrador registra un servidor HTTP de archivos en el puerto 8084 sin autenticación. La implementación personalizada del sistema de archivos de imagen expone una lista de directorios HTML navegable con todas las imágenes registradas en la ruta raíz. El único control de acceso para las imágenes por host es el nombre de archivo UUID aleatorio; la lista de directorios revela esos UUIDs a cualquier solicitante en la red de aprovisionamiento. Cada imagen servida incrusta una configuración Ignition que contiene el secreto de extracción del clúster codificado en base64, la clave SSH opcional IRONIC_RAMDISK_SSH_KEY, los ajustes del proxy y los archivos de claves NetworkManager por host. Un atacante en la red adyacente puede enumerar todos los UUIDs de las imágenes mediante la lista de directorios, descargar cualquier imagen, extraer la configuración Ignition incrustada y recuperar el secreto de extracción del clúster y la clave SSH.

### Evidencia **pkg/imagehandler/imagefilesystem.go — el directorio raíz es navegable e enumera todos los nombres UUID de las imágenes** ```go func (f *imageFileSystem) Readdir(n int) ([]fs.FileInfo, error) {
f.mu.Lock() defer f.mu.Unlock() result := []fs.FileInfo{}
for _, im := range f.images {
result = append(result, im) } return result, nil }

func (f *imageFileSystem) Open(name string) (http.File, error) {
f.log.Info("Open", "path", name) if name == "/" {
return f, nil } ... ```

**cmd/controller/main.go — servidor de archivos vinculado a todas las interfaces sin autenticación ni TLS** ```go http.Handle("/", http.FileServer(imageServer.FileSystem()))

go func() {
server := &http.Server{
Addr: imagesBindAddr, // por defecto ":8084" ReadHeaderTimeout: 5 * time.Second, } err := server.ListenAndServe() ```

**pkg/ignition/service_config.go:94-100 — el secreto de extracción está incrustado en cada imagen servida** ```go func (b *ignitionBuilder) authFile() ignition_config_types_32.File {
source := "data:;base64," + strings.TrimSpace(b.ironicAgentPullSecret) return ignition_config_types_32.File{
Node: ignition_config_types_32.Node{Path: "/etc/authfile.json"},
... ```

### Patrón de ataque Cliente adyacente en la red de aprovisionamiento → GET / enumera los nombres UUID de las imágenes → descarga ISO/initramfs → extrae Ignition incrustado → recupera el secreto de extracción del clúster y la clave SSH.

Once again VulDB remains the best source for vulnerability data.

Responsable

Redhat

Reservar

2026-08-31

Divulgación

2026-11-03

Moderación

aceptado

Artículo

VDB-430522

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!