Skip to content
Fencer Vulns
high 8.8

CVE-2019-9858 in the critical feed json

Remote code execution was discovered in Horde Groupware Webmail 5.2.22 and 5.2.17.

published 2019-05-29 7 y ago modified 2026-06-17 4 mo ago also EUVD-2019-19214

cvss
8.8
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
18.8%
EPSS 18.8% chance of exploitation in 30 days, percentile 97%
public exploits
1
Metasploit

Summary

Remote code execution was discovered in Horde Groupware Webmail 5.2.22 and 5.2.17. Horde/Form/Type.php contains a vulnerable class that handles image upload in forms. When the Horde_Form_Type_image method onSubmit() is called on uploads, it invokes the functions getImage() and _getUpload(), which uses unsanitized user input as a path to save the image. The unsanitized POST parameter object[photo][img][file] is saved in the $upload[img][file] PHP variable, allowing an attacker to manipulate the $tmp_file passed to move_uploaded_file() to save the uploaded file. By setting the parameter to (for example) ../usr/share/horde/static/bd.php, one can write a PHP backdoor inside the web root. The static/ destination folder is a good candidate to drop the backdoor because it is always writable in Horde installations. (The unsanitized POST parameter went probably unnoticed because it's never submitted by the forms, which default to securely using a random path.)

Patch / fix

  • php-horde-form Debian 12 2.0.18-3.1

debian advisories DEBIAN-CVE-2019-9858

Timeline

  1. First public exploit (Metasploit exploit/multi/http/horde_form_file_upload)
  2. Published

Exploit prediction

18.83% chance of exploitation in the next 30 days, higher than 97% of all scored CVEs (FIRST EPSS, 2026-11-08).

Exploits and checks

CVSS scores

assigned by version score vector
NVD 3.1 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
NVD 2.0 6.5 AV:N/AC:L/Au:S/C:P/I:P/A:P

Classification

Weakness
  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.