CVE-2014-3248
NoneCVSS
—
EPSS
0.5%
Published
Nov 16, 2014
CISA due date
—
Cloudanix analysis
A flaw in older management software lets someone already on the computer trick it into running harmful files from the folder it is working in, giving them more control over the system.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- Application
- Class
- Privilege Escalation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Untrusted search path vulnerability allows a local process running with Ruby 1.9.1 or earlier to load and execute attacker-controlled Ruby files or shared libraries from the current working directory instead of trusted system locations, resulting in privilege escalation.
Why it matters to the business
Local attackers on affected systems can obtain elevated privileges, potentially taking control of configuration management tools and the systems they manage, leading to widespread unauthorized access or disruption.
How an attack unfolds
An attacker with local access places a malicious file matching one of the expected names in the working directory of a vulnerable process; when the process starts under Ruby 1.9.1 or earlier, it loads the Trojan instead of the legitimate library, executing attacker code with the privileges of the running service.
How to fix it
Upgrade affected components to fixed versions; for typo3 (Bitnami) apply the update to 9.5.42 or later. Where upgrades are not immediately possible, restrict write access to directories from which these processes are launched and avoid running under Ruby 1.9.1 or earlier.
How to confirm the fix worked
Verify installed package versions against the fixed releases, confirm that Ruby 1.9.1 or earlier is no longer in use with the affected tools, and test that processes no longer load files from the current working directory when expected system paths are present.
Typical attack path
- Obtain local access to a system running an affected version
- Identify the working directory used by the vulnerable component
- Place a Trojan horse file using one of the demonstrated names in that directory
- Trigger execution of the vulnerable binary or service
- Gain elevated privileges via the loaded malicious code
How to detect it
Review process execution logs and file access traces for unexpected loads of the named Ruby or shared-object files from non-system directories; examine startup scripts and working directories for the presence of the listed Trojan file names.
- rubygems/defaults/operating_system.rb
- Win32API.rb
- Win32API.so
- safe_yaml.rb
- safe_yaml/deep.rb
- safe_yaml/deep.so
- operatingsystem.rb
- operatingsystem.so
- osfamily.rb
- osfamily.so
What your security team should do
- Apply the available fixed versions immediately given the public exploit availability
- Audit systems for any remaining use of Ruby 1.9.1 or earlier with these components
- Harden working directory permissions for configuration management services
- Monitor for unexpected file loads during process startup
The record
Untrusted search path vulnerability in Puppet Enterprise 2.8 before 2.8.7, Puppet before 2.7.26 and 3.x before 3.6.2, Facter 1.6.x and 2.x before 2.0.2, Hiera before 1.3.4, and Mcollective before 2.5.2, when running with Ruby 1.9.1 or earlier, allows local users to gain privileges via a Trojan horse file in the current working directory, as demonstrated using (1) rubygems/defaults/operating_system.rb, (2) Win32API.rb, (3) Win32API.so, (4) safe_yaml.rb, (5) safe_yaml/deep.rb, or (6) safe_yaml/deep.so; or (7) operatingsystem.rb, (8) operatingsystem.so, (9) osfamily.rb, or (10) osfamily.so in puppet/confine.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| RubyGems | facter | 0 | 1.7.6 |
| RubyGems | facter | 2.0.0 | 2.0.2 |
| RubyGems | hiera | 0 | 1.3.4 |
| RubyGems | mcollective-client | 0 | 2.5.2 |
| RubyGems | puppet | 0 | 2.7.26 |
| RubyGems | puppet | 3.0.0 | 3.6.2 |
| Debian:10 | facter | 0 | 2.0.1-1 |
| Debian:10 | hiera | 0 | 1.3.4-1 |
| Debian:10 | mcollective | 0 | 2.5.2+dfsg-1 |
| Debian:10 | puppet | 0 | 3.7.0-1 |
| Debian:11 | facter | 0 | 2.0.1-1 |
| Debian:11 | hiera | 0 | 1.3.4-1 |
| Debian:11 | mcollective | 0 | 2.5.2+dfsg-1 |
| Debian:11 | puppet | 0 | 3.7.0-1 |
| Debian:12 | facter | 0 | 2.0.1-1 |
| Debian:12 | hiera | 0 | 1.3.4-1 |
| Debian:12 | mcollective | 0 | 2.5.2+dfsg-1 |
| Debian:13 | facter | 0 | 2.0.1-1 |
| Debian:13 | hiera | 0 | 1.3.4-1 |
| Debian:14 | facter | 0 | 2.0.1-1 |
| Debian:14 | hiera | 0 | 1.3.4-1 |
| Ubuntu:14.04:LTS | facter | 0 | No fix |
| Ubuntu:14.04:LTS | puppet | 0 | 3.4.3-1ubuntu1.2 |
| Ubuntu:16.04:LTS | puppet | 0 | 3.8.5-2 |
| Ubuntu:Pro:14.04:LTS | facter | 0 | No fix |
| gem | facter | 2.0.0 | 2.0.2 |
| gem | puppet | 3.0.0 | 3.6.2 |
| openSUSE:Tumbleweed | rubygem-facter | 0 | 1.3.4-3.5 |
Related vulnerabilities
- CVE-2015-7833 The usbvision driver in the Linux kernel package 3.10.0-123.20.1.el7 through… CWE-17
- CVE-2015-0275 The ext4_zero_range function in fs/ext4/extents.c in the Linux kernel before 4.1 allows… CWE-17
- CVE-2015-2535 Active Directory in Microsoft Windows Server 2008 SP2 and R2 SP1 and Server 2012 Gold and… CWE-17
- CVE-2015-2526 Microsoft .NET Framework 4.5, 4.5.1, 4.5.2, and 4.6 allows remote attackers to cause a… CWE-17
- CVE-2014-8155 GnuTLS before 2.9.10 does not verify the activation and expiration dates of CA… CWE-17
- CVE-2015-1805 The (1) pipe_read and (2) pipe_write implementations in fs/pipe.c in the Linux kernel… CWE-17
- CVE-2015-3183 The chunked transfer coding implementation in the Apache HTTP Server before 2.4.14 does… CWE-17
- CVE-2015-4620 name.c in named in ISC BIND 9.7.x through 9.9.x before 9.9.7-P1 and 9.10.x before… CWE-17