Gotenberg é uma API stateless alimentada por Docker para arquivos PDF. O endpoint de gravação de metadados valida as chaves de metadados para caracteres de controle, mas não sanitiza os valores dos metadados. Um caractere de nova linha (`
`) injetado em um valor de metadado divide a linha de stdin do ExifTool em dois argumentos separados, permitindo a injeção de pseudo-tags arbitrárias do ExifTool, como `-FileName`, `-Directory`, `-SymLink` e `-HardLink`. Este problema é um bypass de uma correção anterior incompleta que validava apenas as chaves.
Um invasor não autenticado pode explorar isso através do endpoint `/forms/pdfengines/metadata/write` manipulando o parâmetro `metadata`. Isso pode levar à execução remota de código, permitindo que o invasor renomeie ou mova PDFs para caminhos arbitrários no sistema de arquivos do container, sobrescreva arquivos críticos do sistema ou crie links simbólicos e links rígidos. A vulnerabilidade é disparada dentro da função `WriteMetadata()` em `pkg/modules/exiftool/exiftool.go` ao passar valores para a função `SetString()` da biblioteca `go-exiftool`.