### Resumo A função processa URLs de imagens incorporados em um corpo de e- mail HTML sem validar ou restringir esquemas URI. A verificação `!str_ starts_with($myUrl, 'http')` avalia para true para `file://' URIs, causando `file_get_contents($baseir. urldecode($myUrl))' para ler arquivos arbitrários do sistema de arquivos do servidor e incorporá- los como anexos MIME em e- mails de saída. str_starts_with('file:///etc/passwd', 'http') → **false**!false → ** true**. ``` php // api/ src/Mail.php foreach($images[ 2 ] como $i => $url) { //$isData = false; $baseir = $data = ''; $needTempFile = true; $attachmentData = ['nome' => '', 'tipo' => '', 'file' => '', 'tmp_name' => '']; tente { // não mude urls para imagens absolutas (graças ao corvuscorax) se (!str_starts_with($url, 'data')) { $attachmentData['nome'] = nome base($url); // precisa resolver todo o tipo de url se (($directory = dirname($url))) == '.') $directory = ''; $ext = pathinfo($attachmentData['), PATHINFO_EXTENSION); $attachmentData[tipo'] = MimeMagic:ext: 2 Mime( $ext); se ( strlen( $directory) > 1 & &!str_ends_with($ directory, '/')) { $ directory.= '/'; }........ // processURL 2 InlineImagens funciona se ( $myUrl[ 0 ]!='/' & & strlen($baseir) > 1 &&!str_ends_with($basedir, '/')) { $basedir.= '/'; } se ($necessárioTempFile & & vazio($attachment) & & &!str_starts_with($myUrl, "http")) { tentar { $data = arquivo_get_contents($basedir.urldecode($myUrl)); } pegar (\Throwable $e) { _egw_log_exception($e); } } se (str_starts_with($url, 'data:')) ````.

### PoC 1. Faça login como qualquer usuário do EGroupware autenticado com acesso ao correio e abra a janela de composição do correio. 2. Mude para o modo corpo HTML e insera: ` `. 3. O servidor executa file_get_contents('file:///etc/passwd'), escreve o conteúdo para um arquivo temporário e o anexa como uma parte MIME inline. ### Impacto Um atacante autenticado pode ler arquivos arbitrários acessíveis pelo processo do servidor web, incluindo /etc/passwd, arquivos de configuração de aplicativos contendo credenciais de banco de dados, chaves TLS privadas e arquivos de ambiente.

### Remediação Exerça uma lista de allows de esquemas URI estritos antes de chamar file_get_contents(). Substitua a verificação `!str_ starts_with($myUrl, 'http')' por `if (!preg_match('#^https?://#i', $myUrl)) { continuar; }` para rejeitar `file://', `ftp://', `php://', `data://' e qualquer outro esquema não-HTTP. Registro de aconselhamento: GHSA- c 8 m 7 - r 2 jv- rw 63. Identificadores relacionados: CVE- 2026 - 45016.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 07 T 13: 02: 43.000 Z e lista a sua última modificação como 2026 - 07 - 07 T 13: 02: 43.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.0 /AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N.

Software afetado e informações de versão: Packagist pacote egroupware/egroupware — ECOSYSTEM: introduzido 26.0.20251208, corrigido 26.5.20260507. Packagist pacote egroupware/egroupware — ECOSISTEM: introduzido 0, corrigido 23.1.20260601. Classificação e evidência: identificadores de fraqueza CWE- 73. O registro contém 2 suporte de referências nestes tipos: WEB, PACKAGE.