Impacto
Quando um desenvolvedor ou uma tarefa de CI executa uma versão afetada do Microsoft Kiota em uma descrição OpenAPI controlada ou influenciada por um invasor, entradas $ref externas podem fazer com que o host de compilação busque recursos HTTP(S) remotos ou leia arquivos locais e fora da árvore do projeto. O conteúdo referenciado pode ser incorporado ao código de cliente gerado e depois enviado ao repositório ou publicado, criando uma forma de divulgar dados que o invasor não conseguiria ler de outra maneira. O alerta do fornecedor limita o impacto demonstrado à falsificação de solicitações do lado do servidor e à inclusão de arquivos remotos ou locais; não relata execução de código [S1] [S2].
Causa raiz
Os pacotes NuGet afetados são Microsoft.OpenApi.Kiota e Microsoft.OpenApi.Kiota.Builder. O alerta revisado lista dois intervalos afetados distintos para os dois pacotes: versões anteriores à 1.29.1 e versões a partir da 1.30.0 até, sem incluir, a 1.32.5 [S1] [S2]. Essas versões podiam resolver referências OpenAPI externas durante a geração sem uma política padrão de negação por origem ou caminho.
Correção
Atualize a linha de versões mais antiga para 1.29.1 ou a linha atual para 1.32.5 ou posterior [S1] [S3] [S4]. As versões corrigidas negam referências externas por padrão, a menos que uma origem ou um caminho confiável seja permitido explicitamente. Mantenha essa lista de permissões restrita, evite confiança com curingas, revise as descrições OpenAPI externas antes da geração e limite o acesso dos agentes de compilação à rede e ao sistema de arquivos.
Cobertura pelo FixVibe
As varreduras de repositórios GitHub do FixVibe identificam evidências de dependências afetadas de Microsoft.OpenApi.Kiota e Microsoft.OpenApi.Kiota.Builder em manifestos e arquivos de bloqueio .NET e NuGet compatíveis. Versões resolvidas com exatidão fornecem evidências de versão de alta confiança; intervalos declarados que podem incluir uma versão afetada são informados com menor confiança. Este é um alerta baseado em versões: o FixVibe não executa o Kiota, não segue referências externas, não lê arquivos, não faz solicitações de sondagem, não determina se uma descrição OpenAPI é controlada por um invasor e não afirma que SSRF ou inclusão de arquivos tenha ocorrido [S1] [S2].
