CVE-2026-45016
CVE-2026-45016 · EGroupware Vulnerable to Local File Inclusion via file:// URI in Mail Compose
Esta página presenta datos de fuentes públicas de vulnerabilidades. Consulta el aviso original antes de actualizar.
### Summary The function processes image URLs embedded in an HTML email body without validating or restricting URI schemes. The check `!str_starts_with($myUrl, 'http')` evaluates to true for `file://` URIs, causing `file_get_contents($basedir . urldecode($myUrl))` to read arbitrary files from the server filesystem and embed them as inline MIME attachments in outgoing email. str_starts_with('file:///etc/passwd', 'http') → **false** !false → **true** ```php // api/src/Mail.php foreach($images[2] as $i => $url) { //$isData = false; $basedir = $data = ''; $needTempFile = true; $attachmentData = ['name' => '', 'type' => '', 'file' => '', 'tmp_name' => '']; try { // do not change urls for absolute images (thanks to corvuscorax) if (!str_starts_with($url, 'data:')) { $attachmentData['name'] = basename($url); // need to resolve all sort of url if (($directory = dirname($url)) == '.') $directory = ''; $ext = pathinfo($attachmentData['name'], PATHINFO_EXTENSION); $attachmentData['type'] = MimeMagic::ext2mime($ext); if ( strlen($directory) > 1 && !str_ends_with($directory, '/')) { $directory .= '/'; } .. ... .... // processURL2InlineImages function if ( $myUrl[0]!='/' && strlen($basedir) > 1 && !str_ends_with($basedir, '/')) { $basedir .= '/'; } if ($needTempFile && empty($attachment) && !str_starts_with($myUrl, "http")) { try { $data = file_get_contents($basedir.urldecode($myUrl)); } catch (\Throwable $e) { _egw_log_exception($e); } } } if (str_starts_with($url, 'data:')) ``` ### PoC 1. Log in as any authenticated EGroupware user with mail access and open the mail compose window. 2. Switch to HTML body mode and insert: `<img src="file:///etc/passwd">`. 3. The server executes file_get_contents('file:///etc/passwd'), writes the content to a temp file, and attaches it as an inline MIME part. ### Impact An authenticated attacker can read arbitrary files accessible by the web server process, including /etc/passwd, application configuration files containing database credentials, private TLS keys, and environment files. ### Remediation Enforce a strict URI scheme allowlist before calling file_get_contents(). Replace the check `!str_starts_with($myUrl, 'http')` with `if (!preg_match('#^https?://#i', $myUrl)) { continue; }` to reject `file://`, `ftp://`, `php://`, `data://`, and any other non-HTTP scheme.
CVSS 6.5 · Media · Corrección disponible
- Publicación
- Actualización
Pila tecnológica: php
Productos y versiones afectados
egroupware/egroupware Packagist
- Versiones
- 26.0.20251208
- 26.0.20251216
- 26.0.20260108
- 26.0.20260113
- 26.0.20260123
- 26.1.20260130
- 26.2.20260203
- 26.2.20260207
- 26.2.20260209
- 26.2.20260216
- 26.2.20260224
- 26.3.20260316
- 26.4.20260408
- 26.4.20260413
- 26.4.20260423
- 26.4.20260424
- 26.4.20260429
- 26.5.20260506
- Intervalos de versiones afectados
- ECOSYSTEM: ≥ 26.0.20251208, < 26.5.20260507
Actualiza a 26.5.20260507
egroupware/egroupware Packagist
- Versiones
- 14.2.20150121
- 14.2.20150206
- 14.2.20150210
- 14.2.20150212
- 14.2.20150218
- 14.2.20150310
- 14.2.20150402
- 14.2.20150421
- 14.2.20150428
- 14.2.20150429
- 14.2.20150501
- 14.2.20150603
- 14.2.20150707
- 14.2.20150717
- 14.3.20150728
- 14.3.20150729
- 14.3.20150811
- 14.3.20150821
- 14.3.20150826
- 14.3.20150908
- 14.3.20151012
- 14.3.20151027
- 14.3.20151028
- 14.3.20151029
- 14.3.20151030
- 14.3.20151110
- 14.3.20151130
- 14.3.20151201
- 14.3.20160112
- 14.3.20160113
- 14.3.20160304
- 14.3.20160428
- 14.3.20160512
- 14.3.20160522
- 14.3.20160524
- 14.3.20160525
- 14.3.20160708
- 16.1.20160603
- 16.1.20160621
- 16.1.20160627
- 16.1.20160630
- 16.1.20160708
- 16.1.20160715
- 16.1.20160801
- 16.1.20160810
- 16.1.20160905
- 16.1.20161006
- 16.1.20161102
- 16.1.20161107
- 16.1.20161208
- 16.1.20170118
- 16.1.20170203
- 16.1.20170315
- 16.1.20170415
- 16.1.20170612
- 16.1.20170613
- 16.1.20170703
- 16.1.20170922
- 16.1.20171106
- 16.1.20180116
- 16.1.20180130
- 17.1.20171023
- 17.1.20171106
- 17.1.20171115
- 17.1.20171129
- 17.1.20171130
- 17.1.20171218
- 17.1.20180118
- 17.1.20180130
- 17.1.20180209
- 17.1.20180321
- 17.1.20180413
- 17.1.20180523
- 17.1.20180625
- 17.1.20180720
- 17.1.20180831
- 17.1.20181018
- 17.1.20181204
- 17.1.20181205
- 17.1.20190111
- 17.1.20190214
- 17.1.20190222
- 17.1.20190402
- 17.1.20190529
- 17.1.20190808
- 19.1.20190716
- 19.1.20190717
- 19.1.20190726
- 19.1.20190806
- 19.1.20190813
- 19.1.20190822
- 19.1.20190917
- 19.1.20190925
- 19.1.20191031
- 19.1.20191119
- 19.1.20191220
- 19.1.20200130
- 19.1.20200318
- 19.1.20200409
- 19.1.20200430
- 19.1.20200605
- 19.1.20200701
- 20.1.20200525
- 20.1.20200613
- 20.1.20200628
- 20.1.20200710
- 20.1.20200716
- 20.1.20200728
- 20.1.20200731
- 20.1.20200810
- 20.1.20200812
- 20.1.20200818
- 20.1.20200901
- 20.1.20200914
- 20.1.20201005
- 20.1.20201020
- 20.1.20201028
- 20.1.20201202
- 20.1.20201217
- 20.1.20210125
- 20.1.20210324
- 20.1.20210503
- 21.1.20210318
- 21.1.20210329
- 21.1.20210406
- 21.1.20210420
- 21.1.20210504
- 21.1.20210521
- 21.1.20210629
- 21.1.20210723
- 21.1.20210923
- 21.1.20211130
- 21.1.20220207
- 21.1.20220406
- 21.1.20220408
- 21.1.20220905
- 21.1.20220916
- 21.1.20221202
- 21.1.20230210
- 22.1.20220920
- 23.1.20230110
- 23.1.20230114
- 23.1.20230125
- 23.1.20230210
- 23.1.20230228
- 23.1.20230314
- 23.1.20230328
- 23.1.20230412
- 23.1.20230428
- 23.1.20230503
- 23.1.20230524
- 23.1.20230620
- 23.1.20230726
- 23.1.20230728
- 23.1.20230824
- 23.1.20230911
- 23.1.20231110
- 23.1.20231122
- 23.1.20231129
- 23.1.20231201
- 23.1.20231219
- 23.1.20231220
- 23.1.20240125
- 23.1.20240304
- 23.1.20240430
- 23.1.20240624
- 23.1.20240905
- 23.1.20240930
- 23.1.20241008
- 23.1.20241111
- 23.1.20241128
- 23.1.20241214
- 23.1.20250113
- 23.1.20250307
- 23.1.20250416
- 23.1.20250506
- 23.1.20250715
- 23.1.20250902
- 23.1.20251021
- 23.1.20251119
- 23.1.20251222
- 23.1.20260108
- 23.1.20260113
- 23.1.20260131
- 23.1.20260224
- Intervalos de versiones afectados
- ECOSYSTEM: < 23.1.20260601
Actualiza a 23.1.20260601