Skip to content
OpenAdvisories

Weakness (CWE)

CWE-427: Uncontrolled Search Path Element

Base Draft

The product uses a fixed or controlled search path to find resources, but one or more locations in that path can be under the control of unintended actors.

More detail

Although this weakness can occur with any type of resource, it is frequently introduced when a product uses a directory search path to find executables or code libraries, but the path contains a directory that can be modified by an attacker, such as "/tmp" or the current working directory.

In Windows-based systems, when the LoadLibrary or LoadLibraryEx function is called with a DLL name that does not contain a fully qualified path, the function follows a search order that includes two path elements that might be uncontrolled:

- the directory from which the program has been loaded

- the current working directory

In some cases, the attack can be conducted remotely, such as when SMB or WebDAV network shares are used.

One or more locations in that path could include the Windows drive root or its subdirectories. This often exists in Linux-based code assuming the controlled nature of the root directory (/) or its subdirectories (/etc, etc), or a code that recursively accesses the parent directory. In Windows, the drive root and some of its subdirectories have weak permissions by default, which makes them uncontrolled.

In some Unix-based systems, a PATH might be created that contains an empty element, e.g. by splicing an empty variable into the PATH. This empty element can be interpreted as equivalent to the current working directory, which might be an untrusted search element.

In software package management frameworks (e.g., npm, RubyGems, or PyPi), the framework may identify dependencies on third-party libraries or other packages, then consult a repository that contains the desired package. The framework may search a public repository before a private repository. This could be exploited by attackers by placing a malicious package in the public repository that has the same name as a package from the private repository. The search path might not be directly under control of the developer relying on the framework, but this search order effectively contains an untrusted element.

How to prevent it (5 mitigations)
  1. 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.

  2. 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.

  3. 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.

  4. 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. Since this is a denylist approach, it might not be a complete solution.

  5. 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 finding the program using the PATH environment variable, while execl() and execv() require a full path.

Source: MITRE CWE-427

952 results · Feed

  • High 7.3
    CVE-2024-20338 Public exploit

    A vulnerability in the ISE Posture (System Scan) module of Cisco Secure Client for Linux could allow an authenticated, …

  • Medium 6.7

    Dell Update Package (DUP), Versions prior to 4.9.10 contain an Uncontrolled Search Path vulnerability. A malicious user…

  • High 7.8

    Delta Electronics CNCSoft-B DOPSoft Uncontrolled Search Path Element

    Delta Electronics CNCSoft-B DOPSoft prior to v4.0.0.82 insecurely loads libraries, which may allow an attacker to use DLL hijacking and take over the system where the software is installed.

  • High 7.3

    AVEVA Edge products Uncontrolled Search Path Element

    The vulnerability, if exploited, could allow a malicious entity with access to the file system to achieve arbitrary code execution and privilege escalation by tricking AVEVA Edge to load an unsafe DLL.

  • Medium 6.7

    Local Privilege Escalation via DLL Hijacking

    A DLL hijacking vulnerability was identified in the Qognify VMS Client Viewer version 7.1 or higher, which allows local users to execute arbitrary code and obtain higher privileges via careful placement of a malicious DLL, if some specific pre-conditions are …

  • Medium 6.7

    Uncontrolled search path element in some Intel(R) SSU software before version 3.0.0.2 may allow an authenticated user t…

  • Medium 6.7

    Uncontrolled search path for some Intel(R) MPI Library Software before version 2021.11 may allow an authenticated user …

  • Medium 6.7

    Uncontrolled search path in the Intel(R) SUR for Gameplay Software before version 2.0.1901 may allow a privillaged user…

  • Medium 6.7

    Uncontrolled search path in some Intel(R) ISPC software before version 1.21.0 may allow an authenticated user to potent…

  • Medium 6.7

    Uncontrolled search path in some Intel(R) SDK for OpenCL(TM) Applications software may allow an authenticated user to p…

  • Medium 6.7

    Uncontrolled search path in some Intel(R) Battery Life Diagnostic Tool software before version 2.3.1 may allow an authe…

  • Medium 6.7

    Uncontrolled search path in Intel(R) QSFP+ Configuration Utility software, all versions, may allow an authenticated use…

  • Medium 6.7

    Uncontrolled search path in some Intel(R) Binary Configuration Tool software before version 3.4.4 may allow an authenti…

  • Medium 6.7

    Uncontrolled search path in some Intel(R) CIP software before version 2.4.10577 may allow an authenticated user to pote…

  • Medium 6.7

    Uncontrolled search path in some Intel(R) oneAPI Toolkit and component software installers before version 4.3.2 may all…

  • Medium 6.7

    Uncontrolled search path in some Intel(R) XTU software before version 7.12.0.29 may allow an authenticated user to pote…

  • Medium 6.7

    Uncontrolled search path element in some Intel(R) VROC software before version 8.0.8.1001 may allow an authenticated us…

  • Medium 6.7

    Uncontrolled search path element in some Intel(R) Thunderbolt(TM) DCH drivers for Windows before version 88 may allow a…

  • Critical 9.8

    An issue in Plone Docker Official Image 5.2.13 (5221) open-source software that could allow for remote code execution d…

  • High 7.8

    Trend Micro uiAirSupport, included in the Trend Micro Security 2023 family of consumer products, version 6.0.2092 and b…

  • High 7.8

    An issue was discovered in Regify Regipay Client for Windows version 4.5.1.0 allows DLL hijacking: a user can trigger t…

  • Medium 6.5

    IBM Db2 code execution

    IBM Db2 10.1, 10.5, and 11.1 could allow a remote user to execute arbitrary code caused by installing like named jar files across multiple databases. A user could exploit this by installing a malicious jar file that overwrites the existing like named jar file…

  • High 7.9

    Uncontrolled search path in some Intel NUC Pro Software Suite Configuration Tool software installers before version 3.0…

  • High 8.8

    Privilege escalation in jar_signature

    Privilege escalation in jar_signature agent plugin in Checkmk before 2.2.0p18, 2.1.0p38 and 2.0.0p39 allows local user to escalate privileges

  • High 7.8

    Uncontrolled Search Path Element in PTC's Kepware KEPServerEX

    An uncontrolled search path element vulnerability (DLL hijacking) has been discovered that could allow a locally authenticated adversary to escalate privileges to SYSTEM.

  • Medium 6.3

    Uncontrolled Search Path Element in PTC's Kepware KEPServerEX

    An uncontrolled search path element vulnerability (DLL hijacking) has been discovered that could allow a locally authenticated adversary to escalate privileges to SYSTEM. Alternatively, they could host a trojanized version of the software and trick victims in…

  • High 7.8

    Uncontrolled search path vulnerabilities were reported in the Lenovo Universal Device Client (UDC) that could allow an …

  • High 7.0

    IBM i code execution

    Facsimile Support for IBM i 7.2, 7.3, 7.4, and 7.5 could allow a local user to gain elevated privileges due to an unqualified library call. A malicious actor could cause arbitrary code to run with the privilege of the user invoking the facsimile support. IBM …

    IBM i
  • Medium 5.3

    PeaZip Library dragdropfilesdll.dll uncontrolled search path

    A vulnerability has been found in PeaZip 9.4.0 and classified as problematic. Affected by this vulnerability is an unknown functionality in the library dragdropfilesdll.dll of the component Library Handler. The manipulation leads to uncontrolled search path. …

  • High 8.8

    Privilege escalation in agent via LD_LIBRARY_PATH

    Usage of user controlled LD_LIBRARY_PATH in agent in Checkmk 2.2.0p10 up to 2.2.0p16 allows malicious Checkmk site user to escalate rights via injection of malicious libraries

  • High 7.3

    Local privilege escalation due to DLL hijacking vulnerability. The following products are affected: Acronis Cyber Prote…

  • High 8.8

    An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 11.21.32, 12.x before 12.16.20, 13.x bef…

  • Medium 5.3
    CVE-2023-6401 Public exploit

    NotePad++ dbghelp.exe uncontrolled search path

    A vulnerability classified as problematic was found in NotePad++ up to 8.1. Affected by this vulnerability is an unknown functionality of the file dbghelp.exe. The manipulation leads to uncontrolled search path. An attack has to be approached locally. The ide…

  • Medium 6.5

    Uncontrolled Search Path Element Vulnerability in 4D and 4D Windows Server

    An uncontrolled search path element vulnerability has been found on 4D and 4D server Windows executables applications, affecting version 19 R8 100218. This vulnerability consists in a DLL hijacking by replacing x64 shfolder.dll in the installation path, causi…

  • Medium 6.3

    Uncontrolled search path element vulnerability in Plesk

    Uncontrolled search path element vulnerability in Plesk Installer affects version 3.27.0.0. A local attacker could execute arbitrary code by injecting DLL files into the same folder where the application is installed, resulting in DLL hijacking in edputil.dll…

  • High 7.6

    Traversal Path on PHP file

    Uncontrolled Search Path Element vulnerability in Pandora FMS on all allows Leveraging/Manipulating Configuration File Search Paths. This vulnerability allows to access the server configuration file and to compromise the database. This issue affects Pandora F…

  • Medium 6.0

    Arbitrary File Read

    Uncontrolled Search Path Element vulnerability in Pandora FMS on all allows Leveraging/Manipulating Configuration File Search Paths. This vulnerability allows access to files with sensitive information. This issue affects Pandora FMS: from 700 through 772.

  • High 7.8

    Arbitrary code execution in Duet Display

    An uncontrolled search path element vulnerability has been found in the Duet Display product, affecting version 2.5.9.1. An attacker could place an arbitrary libusk.dll file in the C:\Users\user\AppData\Local\Microsoft\WindowsApps\ directory, which could lead…

  • High 7.3

    Multiple DLL Search Order hijacking Vulnerabilities in SanDisk Security Installer for Windows

    Multiple DLL Search Order Hijack vulnerabilities were addressed in the SanDisk Security Installer for Windows that could allow attackers with local access to execute arbitrary code by executing the installer in the same folder as the malicious DLL. This can l…

  • Medium 6.7

    Uncontrolled search path element in some Intel(R) QAT drivers for Windows - HW Version 2.0 before version 2.0.4 may all…