Katalog CWE

CWE-426 · Słabość

Untrusted Search Path

Abstrakcja
Bazowa
Status
Stabilny
Ryzyko wykorzystania
wysokie
Dodano
19 lipca 2006
Ostatnia zmiana
11 grudnia 2025

Podatności CVE z tą słabościąPełny wpis na cwe.mitre.org ↗

Opis

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.

This might allow attackers to execute their own programs, access unauthorized data files, or modify configuration in unexpected ways. If the product uses a search path to locate critical resources such as programs, then an attacker could modify that search path to point to a malicious program, which the targeted product would then execute. The problem extends to any type of critical resource that the product trusts.

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.

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

Inne nazwy

Untrusted Path

Skutki

  • Integrity, Confidentiality, Availability, Access Control

    Gain Privileges or Assume Identity; Execute Unauthorized Code or Commands

    There is the potential for arbitrary code execution with privileges of the vulnerable program.

  • Availability

    DoS: Crash, Exit, or Restart

    The program could be redirected to the wrong files, potentially triggering a crash or hang when the targeted file is too large or does not have the expected format.

  • Confidentiality

    Read Files or Directories

    The program could send the output of unauthorized files to the attacker.

Zapobieganie

  • Architecture and Design, Implementation · Attack Surface Reduction

    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.

Przykłady podatności

Słabość nadrzędna

Pokrewna

Kiedy powstaje

Dotyczy

Not Language-Specific, Not OS-Specific

Źródła

  1. The CLASP Application Security Process — Secure Software, Inc., 2005
  2. The Art of Software Security Assessment — Mark Dowd, John McDonald, Justin Schuh, Chapter 10, Process Attributes, page 603, Addison Wesley, 2006
  3. Writing Secure Code — Michael Howard, David LeBlanc, Chapter 8, "Canonical Representation Issues." Page 229, Microsoft Press, 2001
  4. Building Secure Software: How to Avoid Security Problems the Right Way — John Viega, Gary McGraw, Chapter 12, "Trust Management and Input Validation." Pages 317-320, Addison-Wesley, 2002
  5. Writing Secure Code — Michael Howard, David LeBlanc, Chapter 11, "Don't Trust the PATH - Use Full Path Names" Page 385, Microsoft Press, 2002

Wpis z katalogu CWE 4.20.