Red Os · Red Os · CVE-2026-44849
**Nome do Software Vulnerável e Versões Afetadas**
Portainer Community Edition versões 2.33.0 a 2.33.7
Portainer Community Edition versões 2.39.0 a 2.39.1
Portainer Community Edition versões 2.40.0 a 2.40.x
Portainer Community Edition versões anteriores a 2.33.0
**Description**
O Portainer não aplica corretamente as restrições de `EndpointSecuritySettings` na API de serviço do Docker Swarm, permitindo que usuários não administradores com acesso ao endpoint do Swarm ignorem as políticas de segurança. Embora as restrições de modo privilegiado, namespace PID do host, mapeamento de dispositivos, capacidades, sysctls, security-opt (Seccomp / AppArmor) e bind mounts sejam aplicadas na criação padrão de containers, elas não são aplicadas consistentemente aos serviços Swarm.
Detalhes técnicos incluem:
- O endpoint 'POST /services/create' aplica apenas uma de sete verificações, falhando ao validar `CapabilityAdd`, `CapabilityDrop`, `Sysctls` e `Privileges` (Seccomp / AppArmor) no corpo da requisição.
- O endpoint 'POST /services/{id}/update' não aplica nenhuma verificação, pois não inspeciona o corpo da requisição nem chama a função `fetchEndpointSecuritySettings()`.
- O endpoint 'POST /volumes/create' não possui verificações de `AllowBindMountsForRegularUsers`.
- Existe um bypass onde um mount com `Type: "volume"` e `VolumeOptions.DriverConfig.Options` contendo `type: "none", o: "bind"` é tratado como um bind mount pelo daemon do Docker, ignorando as restrições.
Um invasor pode usar essas falhas para obter capacidades Linux elevadas (ex: `CAP SYS ADMIN`), desativar a filtragem de syscalls ou AppArmor e criar bind mounts de caminhos do host (como `/`), potencialmente alcançando acesso de root no host gerenciador do Swarm.
**Recommendations**
Atualize o Portainer Community Edition versões 2.33.0 a 2.33.7 para 2.33.8.
Atualize o Portainer Community Edition versões 2.39.0 a 2.39.1 para 2.39.2.
Atualize o Portainer Community Edition versões 2.40.0 a 2.40.x para 2.41.0.
Atualize todas as versões anteriores a 2.33.0 para um branch LTS suportado.
Como medida paliativa temporária, revogue o acesso ao endpoint do Swarm para usuários não administradores via RBAC do Portainer.
Segregue os nós gerenciadores (manager) e trabalhadores (worker) usando restrições de posicionamento para evitar que cargas de trabalho de usuários sejam executadas em nós gerenciadores.
Bloqueie a criação de volumes de driver local que utilizem `type: none` e `o: bind` em endpoints não confiáveis através de uma allowlist no lado do daemon.