Apache Commons FileUpload provides file upload capability for Servlets and web applications. During the upload process, FileUpload may (depending on configuration) save the uploaded file temporarily on disk. By default this will be in the system wide tmp directory. Because the temporary files have predictable file names and are stored in a publicly writeable location they are vulnerable to a TOCTOU attack. Versions 1.0 through 1.2.2 are affected.
aef9320b83ebe6ba6979332985d9a5aff8a232ccdbb3dd487e7f6d3b242f6f7a
CVE-2013-0248 Apache Commons FileUpload - Insecure examples
Severity: Low
Vendor: The Apache Software Foundation
Versions Affected:
- Commons FileUpload 1.0 to 1.2.2
Description:
Commons FileUpload provides file upload capability for Servlets and web
applications. During the upload process, FileUpload may (depending on
configuration) save the uploaded file temporarily on disk. By default
this will be in the system wide tmp directory. Because the temporary
files have predictable file names and are stored in a publicly writeable
location they are vulnerable to a TOCTOU attack.
A successful attack requires that the attacker has write access to the
tmp directory. The attack can be prevented by setting the repository to
a non-publicly writeable location.
The documentation for FileUpload does not highlight the potential
security implications of not setting a repository, nor do the provided
examples set a repository. This may have caused users to use FileUpload
in an insecure manner.
Mitigation:
Setting the repository to a non-publicly writeable location such as that
defined by the ServletContext attribute javax.servlet.context.tempdir
will prevent the TOCTOU attack.
Credit:
This issue was identified by Karl Dyszynski and Hugo Vazquez Carames of
SonicWall
References:
[1] http://commons.apache.org/fileupload/