Telerik UI para ASP.NET AJAX: da leitura do web.config ao RCE não autenticado
Técnicas e Métodos de Ataque2026-10-29, 13:04
Pesquisadores da Tanto Security demonstraram uma cadeia de duas vulnerabilidades no Telerik UI para ASP.NET AJAX que pode levar à execução remota de código não autenticada em determinadas configurações.
• CVE-2026-18672 — Leitura arbitrária de arquivos via RadImageEditor
O estado do editor é armazenado em um campo oculto
<ClientID>_ClientState como JSON não assinado e não criptografado. Durante um postback, o servidor aceita um imageUrl controlado pelo atacante e armazena em cache o caminho do arquivo em HttpRuntime.Cache sob um GUID recém-gerado.
O cliente então recebe uma _downloadKey criptografada. Ao enviá-la para Telerik.Web.UI.WebResource.axd?type=iec&dkey=3, o atacante faz com que ImageEditorCacheHandler recupere o caminho em cache e retorne o conteúdo do arquivo.
Em seu PoC, os pesquisadores leram web.config usando o caminho relativo ao aplicativo ~/web.config. Isso é resolvido corretamente tanto na verificação inicial de acesso ao arquivo quanto no manipulador de cache, que de outra forma interpretam caminhos relativos a partir de diretórios base diferentes.
Quando ImageManager.EnableContentProvider está habilitado, o arquivo de destino deve existir; caso contrário, a solicitação falha antes que o caminho seja armazenado em cache. A caixa de diálogo ImageEditor dentro do RadEditor expõe o mesmo mecanismo sem exigir uma página RadImageEditor separada e publicamente acessível.• CVE-2026-19219 — Manipulação do caminho de upload no RadEditor
O
web.config divulgado pode conter Telerik.Web.UI.DialogParametersEncryptionKey ou uma machineKey estática do ASP.NET. Nenhum deles é configurado explicitamente por padrão, portanto, escalar a leitura de arquivos para RCE depende da configuração do aplicativo.
Usando a chave recuperada, um atacante descriptografa e forja os parâmetros de diálogo criptografados (dp, transportados em dialogParametersHolder), definindo ViewPaths e UploadPaths como ~/, alterando SearchPatterns para . e aumentando MaxUploadFileSize.
DialogParametersSerializer.Deserialize() aceita esses valores sem validar independentemente os diretórios permitidos. Enviar os parâmetros forjados para DialogHandler.aspx?DialogName=DocumentManager abre RadFileExplorer com caminhos controlados pelo atacante. O upload por meio de WebResource.axd?type=rau pode então colocar um web shell .aspx na raiz do aplicativo se o processo de trabalho do IIS tiver permissões de gravação suficientes.
Em um PoC contra o Telerik 2026.2.708, os pesquisadores executaram whoami como iis apppool\telerikpool-v708.• Caminho alternativo de RCE — ASP.NET ViewState
Se uma
machineKey estática estiver exposta, um atacante pode forjar um payload __VIEWSTATE corretamente autenticado contendo uma cadeia de desserialização TextFormattingRunProperties → XamlReader.Parse → ObjectDataProvider → Process.Start.
O PoC usou essa cadeia para gravar um web shell. CVE-2026-19219 não é necessário para esse caminho. Quando nenhuma DialogParametersEncryptionKey separada é configurada, a mesma machineKey também pode ser usada para forjar os parâmetros de upload do diálogo.A divulgação de arquivos não implica automaticamente RCE. As cadeias demonstradas exigem uma
machineKey estática ou DialogParametersEncryptionKey. A implantação de um web shell também exige acesso de gravação ao diretório de destino.Versões afetadas: Telerik UI para ASP.NET AJAX 2011.2.712–2026.2.708, inclusive. A versão 2026.3.812 adicionou validação de caminho e extensão para leituras de arquivos, caminhos de imagem criptografados no estado do cliente e bloqueou uploads de extensões perigosas, incluindo
.aspx, .ashx, .exe e .dll. No entanto, Telerik.Web.UI.FileBrowserAllowedPaths permanece opcional. Sem ele, um atacante que possua uma chave de criptografia de diálogo válida ainda pode selecionar diretórios de upload escolhidos pelo atacante acessíveis ao aplicativo, embora extensões de arquivo perigosas sejam bloqueadas. Além de atualizar para 2026.3.812 ou posterior, os administradores devem configurar explicitamente FileBrowserAllowedPaths, restringir permissões de gravação para o pool de aplicativos do IIS e desabilitar a execução de scripts em diretórios de upload. Se web.config puder ter sido exposto, seus segredos devem ser rotacionados.