CyberSecBulletin

Untrusted Search Path

CWE-426

The product searches for critical resources using an externally-supplied search path that can point to resources that are not under the product's direct control.

Some of the most common variants of untrusted search path are: In various UNIX and Linux-based systems, the PATH environment variable may be consulted to locate executable programs, and LD_PRELOAD may be used to locate a separate library. Programming languages may have their own paths for locating code, e.g. PERL5LIB in Perl. In various Microsoft-based systems, the PATH environment variable is consulted to locate a DLL, if the DLL is not found in other paths that appear earlier in the search order.

We track 211 vulnerabilities of this type. 100% are rated high or critical, and the average CVSS score is 7.8. 3 have been exploited in real attacks.

How this weakness is prevented

  • Architecture and Design Implementation: Hard-code the search path to a set of known-safe values (such as system directories), or only allow them to be specified by the administrator in a configuration file. Do not allow these settings to be modified by an external party. Be careful to avoid related weaknesses such as CWE-426 and CWE-428.
  • Implementation: When invoking other programs, specify those programs using fully-qualified pathnames. While this is an effective approach, code that uses fully-qualified pathnames might not be portable to other systems that do not use the same pathnames. The portability can be improved by locating the full-qualified paths in a centralized, easily-modifiable location within the source code, and having the code refer to these paths.
  • Implementation: Remove or restrict all environment settings before invoking other programs. This includes the PATH environment variable, LD_LIBRARY_PATH, and other settings that identify the location of code libraries, and any application-specific search paths.
  • Implementation: Check your search path before use and remove any elements that are likely to be unsafe, such as the current working directory or a temporary files directory.
  • Implementation: Use other functions that require explicit paths. Making use of any of the other readily available functions that require explicit paths is a safe way to avoid this problem. For example, system() in C does not require a full path since the shell can take care of it, while execl() and execv() require a full path.

Latest Untrusted Search Path vulnerabilities

  • 7.2 High severity

    Microsoft Windows Client Server Runtime Subsystem (CSRSS) Privilege Escalation Exploited

    CVE-2022-22047MicrosoftEPSS 18.3%

    Windows Client Server Run-time Subsystem (CSRSS) Elevation of Privilege Vulnerability

  • 7.3 High severity

    git: Untrusted Search Path

    CVE-2022-31012Git-for-windows

    Git for Windows is a fork of Git that contains Windows-specific patches. This vulnerability in versions prior to 2.37.1 lets Git for Windows' installer execute a binary into `C:\mingw64\bin\git.exe` by mistake. This only happens upon a fresh install, not when

  • 7.1 High severity

    Premium Security: Untrusted Search Path

    CVE-2022-28964Avast

    An arbitrary file write vulnerability in Avast Premium Security before v21.11.2500 (build 21.11.6809.528) allows attackers to cause a Denial of Service (DoS) via a crafted DLL file.

  • 7.8 High severity

    Service: Untrusted Search Path

    CVE-2022-29583Service Project

    service_windows.go in the kardianos service package for Go omits quoting that is sometimes needed for execution of a Windows service executable from the intended directory. NOTE: this finding could not be reproduced by its original reporter or by others.

  • 7.8 High severity

    git-lfs: Untrusted Search Path

    CVE-2022-24826Git-lfsEPSS 2.23%

    On Windows, if Git LFS operates on a malicious repository with a `..exe` file as well as a file named `git.exe`, and `git.exe` is not found in `PATH`, the `..exe` program will be executed, permitting the attacker to execute arbitrary code. This does not affect

  • 9.8 Critical severity

    Poetry: Untrusted Search Path

    CVE-2022-26184Python-poetryEPSS 1.85%

    Poetry v1.1.9 and below was discovered to contain an untrusted search path which causes the application to behave in unexpected ways when users execute Poetry commands in a directory containing malicious content. This vulnerability occurs when the application

  • 8.8 High severity

    Pnpm: Untrusted Search Path

    CVE-2022-26183PnpmEPSS 1.59%

    PNPM v6.15.1 and below was discovered to contain an untrusted search path which causes the application to behave in unexpected ways when users execute PNPM commands in a directory containing malicious content. This vulnerability occurs when the application is

  • 7.0 High severity

    SIMATIC S7-1500 CPU 1518-4 PN/DP MFP: Untrusted Search Path

    CVE-2022-26488SiemensEPSS 1.49%

    In Python before 3.10.3 on Windows, local users can gain privileges because the search path is inadequately secured. The installer may allow a local attacker to add user-writable directories to the system search path. To exploit, an administrator must have ins

  • 7.8 High severity

    Cryptomator: Untrusted Search Path

    CVE-2022-25366Cryptomator

    Cryptomator through 1.6.5 allows DYLIB injection because, although it has the flag 0x1000 for Hardened Runtime, it has the com.apple.security.cs.disable-library-validation and com.apple.security.cs.allow-dyld-environment-variables entitlements. An attacker can

  • 7.3 High severity

    Cortex XDR Agent: Untrusted Search Path

    CVE-2022-0014Palo Alto Networks

    An untrusted search path vulnerability exists in the Palo Alto Networks Cortex XDR agent that enables a local attacker with file creation privilege in the Windows root directory (such as C:\) to store a program that can then be unintentionally executed by anot

  • 6.9 Medium severity

    Microsoft Visual Basic for Applications Insecure Library Loading Exploited

    CVE-2012-1854MicrosoftEPSS 20.9%

    Untrusted search path vulnerability in VBE6.dll in Microsoft Office 2003 SP3, 2007 SP2 and SP3, and 2010 Gold and SP1; Microsoft Visual Basic for Applications (VBA); and Summit Microsoft Visual Basic for Applications SDK allows local users to gain privileges v