ActivePerl CVE-2012-5377 Insecure File Permissions Vulnerability

Posted by grahams on 2012-10-25 13:59
OS: Windows | Product: ActivePerl | tags: advisory CVE Security
Question: 

We have read the Security alert for CVE-2012-5377, and would like more information.

Answer: 

This is not a new issue, and it's not really an ActivePerl issue. This vulnerability is a member of a class of vulnerabilities that apply to any software which needs to have a user-writable directory on $PATH. It has been a security concern on Windows for as long as software has been avoiding dll conflicts by using custom library paths.

It is already possible to mitigate the vulnerability by choosing to override the default install path and install to one of the various protected program files silos that newer versions of Windows offer. We don't do this as the default because ActivePerl has a long legacy of scripts and modules which do not handle spaces in the pathname.

It is also possible to migate the vulnerability on an inplace install. This powershell script will copy the permissions to the Perl directory (replace with your directory name, as installed):

powershell -command "(Get-Item 'C:\Program Files').GetAccessControl('Access') | set-acl 'C:\Perl'"

Be advised that protecting Perl from this vulnerability *will* result in reduced functionality. (Edited)
- Installing to a protected program files silo will mean you must have elevated privileges to use PPM or "CPAN" to install or update modules, and will mean that you will need to deal with any white space issues on your own. Use of modules will only be affected if the module design requires write access for the user.
- If you mitigate by using altered acls, you must have elevated privileges to use PPM or "CPAN" to install or update modules. Use of modules will only be affected if the module design requires write access for the user.

Powershell is included in Windows 7. With older versions, you may be able to download.

llemiran | Thu, 2017-11-09 09:21

So to be clear, if we either override the default install path or mitigate the vulnerability with the set-acl command, both will limit our ability to use modules?