Kentico Xperience <= 13.0.178 Staging Media File Upload Authenticated RCE
Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Summary
CVE-2025-2749 é uma falha de path traversal (CWE-22) combinada a upload irrestrito de arquivo (CWE-434) no serviço de sincronização Staging Sync Server do Kentico Xperience, que permite a um usuário autenticado no serviço de sync gravar arquivos em locais fora do diretório de mídia esperado, incluindo conteúdo executável pelo servidor — resultando em RCE. Importa porque está no catálogo KEV da CISA com exploração confirmada, mas o requisito de autenticação (PR:H) e a necessidade de o Staging Service estar habilitado com autenticação usuário/senha limitam quem realmente está exposto — a menos que essa autenticação já tenha sido quebrada por falhas relacionadas descobertas na mesma pesquisa.
Technical detail
O Staging (Sync) Service do Kentico Xperience expõe o webservice CMS.Synchronization.WSE3.SyncServer no endpoint /CMSPages/Staging/SyncServer.asmx, construído sobre Web Services Enhancements 3.0 (WSE3) — tecnologia obsoleta desde ~2012 — usando WS-Security para autenticação e SoapFormatter para desserialização (a mesma classe que já foi alvo de deserialização insegura na CVE-2019-10068, posteriormente endurecida). O método ProcessSynchronizationTaskData recebe um blob stagingTaskData com instruções de sincronização entre instâncias staging e produção, incluindo operações de upload de arquivos de mídia.
A falha está em como o serviço deriva o caminho de destino desses arquivos de mídia a partir de dados controlados pelo payload de sincronização, sem sanitização suficiente contra sequências de traversal. Isso permite escrever fora do diretório de mídia esperado (CWE-22). Combinado à ausência de restrição efetiva sobre tipo/extensão do conteúdo enviado (CWE-434), o atacante pode depositar um arquivo com extensão executável pelo servidor dentro da raiz web, alcançando execução de código quando esse arquivo é posteriormente invocado.
O vetor CVSS 3.1 (PR:H) indica que o pré-requisito é possuir a credencial configurada para o Staging Sync Service — não necessariamente uma conta administrativa completa do CMS. Essa credencial costuma ser compartilhada entre as instâncias staging e produção que sincronizam entre si, e sua obtenção (inclusive via falhas de bypass de autenticação relacionadas, documentadas na mesma pesquisa) reduz o risco efetivo a pré-autenticado.
How it’s exploited
A pesquisa da watchTowr Labs (Piotr Bazydlo) que originou este CVE identificou três achados relacionados no mesmo componente: WT-2025-0006 e WT-2025-0011 (bypass de autenticação do SyncServer, em versões distintas) e WT-2025-0007 (RCE pós-autenticação via upload de mídia com path traversal, que corresponde a este CVE-2025-2749). Encadeados, os bypasses de autenticação eliminam a necessidade de credenciais reais para o Staging Service, tornando a exploração de ponta a ponta efetivamente pré-autenticada. Considerado isoladamente, CVE-2025-2749 exige que o atacante já detenha (ou obtenha por outro meio) o usuário/senha configurado para o Staging Sync Server.
A pré-condição destacada pela própria watchTowr é a mais relevante para avaliar exposição real: o Staging/Sync Service vem desabilitado por padrão e precisa estar ativo E configurado com autenticação usuário/senha (não X.509) para o alvo ser explorável por essa via. Segundo a watchTowr, com base em dados de exposição de seus clientes, essa configuração é comum em ambientes corporativos que usam sincronização staging→produção — não é um cenário de nicho, apesar de não ser o padrão de fábrica.
Com acesso ao serviço, o atacante envia uma requisição SOAP para /CMSPages/Staging/SyncServer.asmx invocando ProcessSynchronizationTaskData com dados de sincronização de mídia manipulados para escrever fora do diretório de destino esperado, depositando um arquivo executável pelo servidor dentro da estrutura web. O resultado final é RCE completo no contexto do processo IIS/ASP.NET. A presença desta CVE no catálogo KEV da CISA confirma exploração ativa observada no mundo real.
Versions
How to protect
A recomendação do fornecedor é aplicar hotfix via Kentico Xperience Installation Manager. A cadeia de vulnerabilidades descoberta pela watchTowr foi corrigida em sequência de hotfixes: WT-2025-0006 em 13.0.173 e WT-2025-0011 em 13.0.178. A descrição oficial do CVE indica que a versão vulnerável se estende 'through 13.0.178', o que aponta para correção em hotfix posterior a essa versão — as fontes disponíveis não confirmam o número exato do hotfix que resolve isoladamente WT-2025-0007/CVE-2025-2749, portanto a orientação segura é instalar o hotfix mais recente disponível no portal de hotfixes do Kentico, não apenas '13.0.179' ou qualquer número específico não verificado.
Se a atualização imediata não for viável, os controles compensatórios reais são: desabilitar o Staging (Sync) Service se ele não estiver em uso operacional; se precisar mantê-lo ativo, migrar a autenticação do serviço de usuário/senha para X.509, já que a pesquisa da watchTowr indica que a configuração baseada em certificado X.509 não é afetada pela cadeia de bypass associada; e restringir por rede (allowlist de IP/firewall) o acesso ao endpoint /CMSPages/Staging/SyncServer.asmx apenas aos hosts que efetivamente participam da sincronização staging/produção, já que o vetor exige acesso de rede a esse endpoint SOAP.
Não funciona como mitigação assumir que o requisito de autenticação (PR:H) por si só neutraliza o risco: as falhas de bypass de autenticação relacionadas (WT-2025-0006, WT-2025-0011), documentadas na mesma pesquisa e no mesmo componente, permitem contornar esse requisito. Corrigir apenas esta CVE isoladamente, sem tratar as demais da mesma cadeia, deixa o ambiente exposto a exploração efetivamente pré-autenticada.
How to detect
Monitorar logs de acesso web (IIS) por requisições POST para /CMSPages/Staging/SyncServer.asmx com cabeçalho SOAPAction referenciando ProcessSynchronizationTaskData, especialmente originadas de IPs que não correspondem aos hosts legítimos de sincronização staging/produção. Dentro do corpo SOAP, buscar sequências de path traversal (ex. ../, variantes codificadas) no elemento stagingTaskData ou em dados relacionados a caminho de arquivo de mídia.
O conteúdo do payload de sincronização costuma ser tratado como blob binário/serializado, o que limita a visibilidade em logs de aplicação padrão — nesse caso, o sinal mais confiável disponível é a criação inesperada de arquivos com extensão executável pelo servidor (.aspx, .ashx e similares) fora dos diretórios de mídia esperados, com timestamp correlato a acesso ao endpoint SyncServer.asmx.