CVE-2020-10236
Description
An issue was discovered in Froxlor before 0.10.14. It created files with static names in /tmp during installation if the installation directory was not writable. This allowed local attackers to cause DoS or disclose information out of the config files, because of _createUserdataConf in install/lib/class.FroxlorInstall.php.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
froxlor/froxlorPackagist | < 0.10.14 | 0.10.14 |
Affected products
2- Froxlor/Froxlordescription
Patches
Vulnerability mechanics
Root cause
"Use of a static, predictable filename `/tmp/userdata.inc.php` for temporary configuration storage during installation allows local attackers to pre-create or intercept the file."
Attack vector
A local attacker on the same system can exploit the predictable temporary file name `/tmp/userdata.inc.php` during Froxlor installation [ref_id=1]. Because the filename is static, the attacker can pre-create a symlink or a file at that path to either cause a denial of service (by preventing the installer from writing the config) or to read the configuration data (which may contain sensitive credentials) after the installer writes it [CWE-20]. The attack requires local access to the machine and that the Froxlor installation directory is not writable, triggering the fallback to `/tmp` [patch_id=1702830].
Affected code
The vulnerability resides in the `_createUserdataConf` method within `install/lib/class.FroxlorInstall.php`. When the installation directory is not writable, the old code fell through to a branch that wrote the configuration file to a hard-coded path `/tmp/userdata.inc.php` using `fopen('/tmp/userdata.inc.php', 'w')` [patch_id=1702830]. The language strings in `install/lng/english.lng.php`, `french.lng.php`, and `german.lng.php` also referenced the static `/tmp/userdata.inc.php` filename [patch_id=1702830].
What the fix does
The patch replaces the hard-coded `/tmp/userdata.inc.php` with a call to `tempnam(sys_get_temp_dir(), 'fx')`, which generates an unpredictable filename [patch_id=1702830]. The new code also uses `touch()` and sets permissions to `0400` before writing, improving security. The language strings are updated to use a `%s` placeholder so the dynamic filename is displayed to the administrator, who is then instructed to move the file to the correct location (`lib/userdata.inc.php`) [patch_id=1702830]. This eliminates the race condition and predictability that allowed local attackers to interfere with or steal the configuration file.
Preconditions
- configThe Froxlor installation directory must not be writable, causing the installer to fall back to writing to /tmp
- authThe attacker must have local access to the machine (e.g., a shell or ability to create files in /tmp)
Generated on May 23, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/advisories/GHSA-hvgf-2rf7-wrx9ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2020-10236ghsaADVISORY
- bugzilla.suse.com/show_bug.cgighsax_refsource_MISCWEB
- github.com/Froxlor/Froxlor/commit/6b09720ef8a1cc008751dd0ca0140a0597fedce5ghsax_refsource_MISCWEB
- github.com/Froxlor/Froxlor/compare/0.10.13...0.10.14ghsax_refsource_MISCWEB
News mentions
0No linked articles in our index yet.