Symfony security : Disclosure of uploaded files full path


Fabien Potencier have just published a new security issue CVE-2018-19789 related to the disclosure of uploaded files full path that affect versions 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 of the Symfony Form component.

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.

To fix this, File uploads are filtered out of form’s data when the corresponding form type doesn’t explicitly allow them.

The issue has been fixed in Symfony 2.7.50, 2.8.49, 3.4.20, 4.0.15, 4.1.9 and notice but that no fixes are provided for Symfony 3.0, 3.1,3.2 and 3.3 as they are not maintained anymore.