Pesquisador destaca código vulnerável da Microsoft que permite acesso não autorizado a arquivos no seu PC

Pesquisador destaca código vulnerável da Microsoft que permite acesso não autorizado a arquivos no seu PC

NLWeb da Microsoft: uma visão geral

Em maio de 2023, durante a conferência Build 2025, a Microsoft revelou uma iniciativa inovadora conhecida como NLWeb, que significa “Natural Language Web”.Este projeto teve como objetivo facilitar interações inteligentes entre agentes de IA e sites, permitindo que eles realizassem tarefas complexas interagindo diretamente com serviços online.

Implicações do NLWeb

Entre as empresas envolvidas, a Shopify e a TripAdvisor expressaram seu apoio a esse conceito, posicionando a NLWeb como um componente-chave no que a Microsoft chama de “web de agente”.Essa visão promete um futuro em que a IA pode executar autonomamente uma série de tarefas on-line, otimizando significativamente as experiências do usuário.

Descoberta de vulnerabilidades de segurança

No entanto, preocupações significativas surgiram em torno da segurança da estrutura NLWeb. Aonan Guan, pesquisador de segurança, juntamente com o colaborador Lei Wang, identificaram uma vulnerabilidade de travessia de caminho no repositório de código do projeto de código aberto. A descoberta surgiu de uma análise do repositório GitHub do NLWeb, particularmente de um arquivo chamado. webserver/static_file_handler.py

Análise Técnica da Vulnerabilidade

A falha identificada está em um segmento específico de código:

# The vulnerable code snippet safe_path = os.path.normpath(path.lstrip('/'))

possible_roots = [ APP_ROOT, os.path.join(APP_ROOT, ‘site’, ‘wwwroot’), ‘/home/site/wwwroot’, os.environ.get(‘HOME’, ”), ]

# Mais adiante no código…full_path = os.path.join(root, safe_path)

A primeira linha deste trecho parece inócua; foi projetada para normalizar caminhos eliminando separadores desnecessários e referências de nível superior, um processo documentado na documentação oficial do Python. os.path.normpath()

Impacto da Vulnerabilidade

Embora essa função seja benéfica, ela introduz uma brecha de segurança. Segundo Guan, ela não impede que os usuários utilizem técnicas de travessia de diretório, como sequências, para navegar além do diretório web pretendido. ../

Para validar o problema, Guan configurou um servidor local em. Ao executar o comando, ele recuperou com sucesso o conteúdo de, informações vitais em sistemas UNIX que contêm detalhes da conta do usuário. 0.0.0.0:8000 curl "http://localhost:8000/static/..%2f..%2f..%2fetc/passwd" /etc/passwd

Imagem: Aonan Guan

Além disso, Guan conseguiu acessar outros arquivos confidenciais, incluindo o arquivo do projeto, que deve permanecer sempre confidencial por conter credenciais sensíveis, como chaves de API. Isso foi demonstrado ainda mais ao executar o comando. .env curl "http://localhost:8000/static/..%2f..%2f..%2fUsers//NLWeb/code/.env"

Resposta e recomendações da Microsoft

Após as descobertas de Guan, relatadas em 28 de maio, a Microsoft reconheceu o problema no mesmo dia e implementou uma correção em 48 horas. A resolução envolveu diversas medidas cruciais:

  • Filtragem inicial de quaisquer instâncias de no caminho para conter possíveis tentativas de travessia de diretório. ..
  • Verificação de que o arquivo solicitado tem uma extensão aceitável, incluindo formatos como.html, .css e.json.
  • Resolução do caminho absoluto para confirmar que ele reside em um diretório raiz autorizado, evitando assim qualquer acesso não autorizado.

Diante desse incidente, Guan enfatiza a importância de atualizar imediatamente todas as instâncias do NLWeb. Ele destaca que, à medida que o conceito de web agêntica se expande, novas vulnerabilidades são expostas, principalmente porque o processamento de linguagem natural pode interpretar inadvertidamente caminhos de arquivos ou comandos maliciosos se não for gerenciado com o máximo de cuidado.

Você pode encontrar mais informações sobre esse problema e o relatório completo de vulnerabilidade no Neowin.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *