Ray 2.58.0 foi lançado às 05:42 UTC de 23 de agosto. Entre as entradas da seção de correções do Ray Serve há uma única linha: corrigir o ASGIService da réplica do Serve contornando a autenticação por token. Não há aviso de segurança anexado, não foi solicitado um CVE e não há indicação de gravidade.
O que diz o pull request
O PR #65189 é consideravelmente mais explícito do que o changelog. O servidor interno gRPC nas réplicas do Serve “foi construído com um grpc.aio.server() bruto e vinculado com add_insecure_port”, tornando-o, nas palavras do autor, o único servidor gRPC do lado Python no Ray que ignorava ambos os controles de transporte do Ray. Em RAY_AUTH_MODE=token, o serviço aceitava solicitações sem credenciais válidas e chegava a pickle.loads(request.pickled_request_metadata) antes de realizar qualquer validação. Em RAY_USE_TLS=1, onde os outros servidores gRPC em Python do Ray usam mTLS, essa porta permanecia sem criptografia.
Chegar a pickle.loads antes da validação é o problema inteiro
Desserializar um pickle fornecido por um atacante é execução arbitrária de código por definição — a própria documentação do Python diz isso. A ordem é o que importa aqui: a carga útil não confiável era desserializada primeiro e autenticada depois, o que torna a autenticação irrelevante nesse caminho, e não apenas fraca.
A distorção: não é uma nova falha, mas uma lacuna de cinco versões
O Ray introduziu a autenticação por token descrita como abrangendo todos os componentes do Ray na versão 2.52.0. Essa porta não estava coberta por ela. Quem ativou RAY_AUTH_MODE=token com base naquela nota de lançamento vem operando, desde então, um endpoint de desserialização sem autenticação em cada réplica do Serve. A correção não adiciona proteção; ela reduz a distância entre o que foi documentado e o que era verdade.
A correção antecede o lançamento em dezoito dias
O PR #65189 foi incorporado em 5 de agosto. Chegou aos operadores em 23 de agosto, quando a versão 2.58.0 foi lançada. Durante esses dezoito dias, o patch ficou legível em um repositório público sem que nenhum lançamento o trouxesse — o custo padrão de corrigir um problema de segurança em aberto, sem embargo, e o motivo pelo qual a linha do changelog importa mais do que sua posição sugere.
O que os operadores devem verificar
A exposição depende do alcance da rede, já que a porta faz bind em interfaces diferentes em uma porta efêmera. Os clusters que importam são aqueles em que as réplicas do Serve ficam em uma rede acessível por chamadores não confiáveis. A atualização move cliente e servidor para os helpers gRPC compartilhados do Ray, que aplicam os interceptadores e as configurações de TLS que o restante do Ray já usava.
