← volver
CVE-2023-49103criticalbajo ataqueCWE-200

CVE-2023-49103

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 10epss 78%
de la publicación al arma1 días
Publicada en NVD21 nov
1ª PoC+1d
metasploit21 nov
CISA KEV+9d
probabilidad de explotación
78%top 1% de las CVE
explotación observada
CISA + VulnCheck
5 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2023-12-21

Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.

Resumen

O app graphapi do ownCloud Server incluía, por causa de uma dependência de terceiros (biblioteca microsoft/microsoft-graph), um script de teste esquecido — GetPhpInfo.php — que expõe phpinfo() sem qualquer autenticação. Em instalações Docker, o phpinfo() vaza todas as variáveis de ambiente do container, o que pode incluir a senha do admin, credenciais de e-mail e chave de licença. O CVSS 10.0 reflete corretamente o pior caso (comprometimento total sem autenticação), mas o impacto real depende de o ambiente ser containerizado e ter esses segredos passados via variável de ambiente — em deployments tradicionais (não-Docker) o vazamento existe, porém é 'apenas' informação de configuração do PHP, não credenciais administrativas.

Detalle técnico

A causa é CWE-200 (exposição de informação sensível). O app graphapi empacotava, dentro do seu diretório vendor, um arquivo de teste da biblioteca oficial da Microsoft para a Graph API: owncloud/apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php. Esse arquivo nunca deveria ter ido para produção — ele simplesmente chama phpinfo() e foi publicado dentro do webroot, acessível via URL direta.

phpinfo() despeja, entre outras coisas, a seção 'Environment Variables' do processo PHP-FPM/Apache. Em imagens Docker do ownCloud (a partir de fevereiro de 2023), segredos como a senha inicial do admin, credenciais SMTP e a chave de licença eram injetados no container via variáveis de ambiente — exatamente o bloco que o phpinfo() expõe. Containers Docker anteriores a fevereiro de 2023 não usavam esse padrão de injeção de segredos por env var, por isso o fornecedor os classifica como não vulneráveis a essa exposição de credenciais específica (o phpinfo() ainda fica acessível, mas sem esses segredos).

O ponto crítico do advisory é que o vazamento não depende do app graphapi estar habilitado: o arquivo continua residindo em disco e sendo servido pelo webserver independentemente do estado do app no ownCloud. Desabilitar o app pela interface administrativa não remove o arquivo do filesystem — a única remediação real é deletar o arquivo ou corrigir a versão do app que o remove do pacote.

Cómo se explota

O vetor é uma requisição HTTP GET não autenticada diretamente ao path do arquivo (owncloud/apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php), sem necessidade de sessão, token ou qualquer interação do usuário — daí AV:N/AC:L/PR:N/UI:N no vetor CVSS. Não há pré-condição de configuração além de a instância estar rodando uma versão vulnerável do app graphapi com o arquivo presente e acessível pelo servidor web.

O resultado prático varia com o ambiente: em containers Docker que injetam segredos via variáveis de ambiente, o atacante lê a resposta e extrai texto em claro com senha de admin, credenciais de e-mail e chave de licença — o que normalmente leva a takeover completo da instância (login administrativo) e possivelmente pivô para o serviço de e-mail. Em instalações sem esse padrão de configuração, o atacante ainda obtém informações detalhadas de path do sistema, versão de PHP, módulos carregados e configurações — úteis para reconhecimento e encadeamento com outras falhas.

A CVE está no catálogo KEV da CISA (adicionada em 2023-11-30, com prazo de correção federal em 2023-12-21), o que confirma exploração ativa observada, e existem módulo Metasploit, template Nuclei e PoC públicas — a barreira técnica para exploração é mínima; é essencialmente um scanner batendo em um path fixo.

Versiones

Afectadas
graphapi 0.2.0 até 0.2.x anteriores a 0.2.1, e 0.3.x anteriores a 0.3.1 (o advisory do fornecedor cita a faixa 0.2.0–0.3.0). Docker containers do ownCloud publicados antes de fevereiro de 2023 não são afetados pela exposição específica de credenciais via variáveis de ambiente, ainda que o arquivo phpinfo possa estar presente.
Corregidas en
graphapi 0.2.1 (branch 0.2.x) e 0.3.1 (branch 0.3.x). Como paliativo equivalente, remoção manual do arquivo owncloud/apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php. O fornecedor recomenda ainda atualizar o ownCloud Server para 10.13.3 ou superior, versão que agrupa as correções desse ciclo de segurança.

Cómo protegerse

A correção do fornecedor é atualizar o app graphapi para a versão 0.2.1 (branch 0.2.x) ou 0.3.1 (branch 0.3.x), que remove o arquivo problemático do pacote. Se a atualização automática do app não for imediata, o paliativo direto e recomendado pelo próprio fornecedor é deletar manualmente o arquivo owncloud/apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php do filesystem — essa ação por si só neutraliza o vetor, independente da versão instalada.

Desabilitar o app graphapi pela administração NÃO mitiga a falha — esse é o mito que o próprio advisory desmente explicitamente, já que o arquivo permanece acessível no disco e servido pelo webserver mesmo com o app desativado. Depois de aplicar a correção ou remover o arquivo, o fornecedor recomenda rotacionar todos os segredos potencialmente expostos: senha do admin do ownCloud, credenciais do servidor de e-mail, credenciais de banco de dados e access-key de Object-Store/S3, independentemente de haver evidência concreta de exfiltração — a exposição pode ter ocorrido silenciosamente.

O fornecedor também informou ter desabilitado a função phpinfo nas próprias imagens Docker oficiais como hardening adicional. Ambientes que usam ownCloud Server 10 abaixo de 10.13.3 devem considerar essa atualização de qualquer forma, pois o mesmo ciclo de release tratou outras CVEs relacionadas (CVE-2023-49104, CVE-2023-49105) publicadas junto com esta.

Cómo detectar

O sinal mais direto é a presença, nos logs de acesso do webserver, de requisições GET (ou HEAD) para o path .../apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php — especialmente vindas de IPs não associados a usuários legítimos e sem cookies de sessão válidos, já que a exploração não requer autenticação. Respostas HTTP 200 com corpo grande (a saída completa do phpinfo()) para esse path confirmam exposição bem-sucedida.

Como há módulo Metasploit, template Nuclei e PoC públicas em circulação, é razoável esperar tráfego de scanners automatizados testando esse path em massa contra qualquer instância exposta à internet — não apenas ataques direcionados. Não há um IOC pós-exploração confiável no lado do ownCloud (a leitura do phpinfo não deixa rastro além do próprio acesso), então a defesa depende inteiramente de monitorar o acesso ao arquivo antes que ele seja removido.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
An issue was discovered in ownCloud owncloud/graphapi 0.2.x before 0.2.1 and 0.3.x before 0.3.1. The graphapi app relies on a third-party GetPhpInfo.php library that provides a URL. When this URL is accessed, it reveals the configuration details of the PHP environment (phpinfo). This information includes all the environment variables of the webserver. In containerized deployments, these environment variables may include sensitive data such as the ownCloud admin password, mail server credentials, and license key. Simply disabling the graphapi app does not eliminate the vulnerability. Additionally, phpinfo exposes various other potentially sensitive configuration details that could be exploited by an attacker to gather information about the system. Therefore, even if ownCloud is not running in a containerized environment, this vulnerability should still be a cause for concern. Note that Docker containers from before February 2023 are not vulnerable to the credential disclosure.
CVSS:3.1/AC:L/AV:N/A:H/C:H/I:H/PR:N/S:C/UI:N
Productos afectados
n/a · n/a
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.