CVE-2018-19789: Disclosure of uploaded files full path
December 6, 2018 • Published by Fabien Potencier
Affected versions
Symfony 2.7.0 to 2.7.49, 2.8.0 to 2.8.48, 3.0.0 to 3.4.19, 4.0.0 to 4.0.14, 4.1.0 to 4.1.8 and 4.2.0 versions of the Symfony Form component are affected by this security issue.
The issue has been fixed in Symfony 2.7.50, 2.8.49, 3.4.20, 4.0.15, 4.1.9 and 4.2.1.
Note that no fixes are provided for Symfony 3.0, 3.1, 3.2 and 3.3 as they are not maintained anymore.
Description
When using the scalar type hint string
in a setter method (e.g. setName(string $name)
) of a class that’s the data_class
of a form, and when a file upload is submitted to the corresponding field instead of a normal text input, then UploadedFile::__toString()
is called which will then return and disclose the path of the uploaded file. If combined with a local file inclusion issue in certain circumstances this could escalate it to a Remote Code Execution.
Resolution
File uploads are filtered out of form's data when the corresponding form type doesn't explicitly allow them.
The patch for this issue is available here for branch 2.7.
Credits
I would like to thank David Gorges of LeapHub GmbH for reporting the issue and Nicolas Grekas for fixing it.
Manage your notification preferences to receive an email as soon as a Symfony security release is published.
Help the Symfony project!
As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.