Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-47906

CVE-2025-47906: Golang Go LookPath Handling Vulnerability

CVE-2025-47906 is a path handling flaw in Golang Go that causes LookPath to unexpectedly return executables from PATH when passed empty strings or dot paths. This article covers technical details, affected versions, and fixes.

Published:

CVE-2025-47906 Overview

CVE-2025-47906 is a path resolution vulnerability in Go's os/exec package. When the PATH environment variable contains paths that point directly to executables rather than directories, passing certain strings to the LookPath function (specifically "", ".", and "..") can result in unexpected binaries being returned. This behavior could allow an attacker to manipulate application execution by exploiting misconfigured PATH variables.

Critical Impact

Applications using Go's LookPath function may inadvertently execute unintended binaries when the PATH environment variable is malformed, potentially leading to information disclosure or denial of service.

Affected Products

  • Golang Go (various versions)

Discovery Timeline

  • 2025-09-18 - CVE CVE-2025-47906 published to NVD
  • 2026-01-27 - Last updated in NVD database

Technical Details for CVE-2025-47906

Vulnerability Analysis

The vulnerability exists in Go's LookPath function within the os/exec package. Under normal circumstances, LookPath searches for an executable named by the provided file argument within the directories listed in the PATH environment variable. However, when PATH entries incorrectly point to executable files instead of directories, and specific input strings are passed to LookPath, the function exhibits unexpected behavior.

When an application calls LookPath with empty strings (""), current directory references ("."), or parent directory references (".."), the function may incorrectly return binaries that are listed directly in the PATH variable rather than binaries found within PATH directories. This deviation from expected behavior could result in the execution of unintended programs.

Root Cause

The root cause stems from improper handling of edge cases in the LookPath function when processing PATH entries that reference executable files directly instead of directories. The function fails to adequately validate whether PATH components are directories before searching for executables, leading to unexpected path resolution when certain special input values are provided.

Attack Vector

An attacker could exploit this vulnerability in environments where they have control over the PATH environment variable or in applications that process user-influenced paths. The attack vector is network-accessible, requiring no user interaction. An attacker who can influence the PATH configuration or provide specific input to applications using LookPath could potentially:

  1. Cause applications to execute unexpected binaries present in malformed PATH entries
  2. Leverage information disclosure if the unintended binary outputs sensitive data
  3. Trigger denial of service conditions through unexpected program execution

The vulnerability mechanism involves calling LookPath with edge-case inputs ("", ".", or "..") when the PATH environment variable contains executable paths rather than directory paths. See the Go.dev Issue #74466 for detailed technical analysis.

Detection Methods for CVE-2025-47906

Indicators of Compromise

  • Unexpected process executions from applications using Go's os/exec package
  • Anomalous PATH environment variable configurations containing direct executable paths
  • Application logs showing unexpected binary resolutions from LookPath calls

Detection Strategies

  • Monitor Go applications for calls to LookPath with empty or relative path inputs ("", ".", "..")
  • Audit PATH environment variables for entries pointing to executables rather than directories
  • Implement runtime analysis to detect unexpected executable resolution patterns
  • Review application logs for unexpected binary execution paths

Monitoring Recommendations

  • Deploy SentinelOne Singularity Platform to detect unusual process execution chains from Go applications
  • Enable logging for all exec package function calls in critical applications
  • Monitor for PATH environment variable modifications at the system level
  • Track process spawning patterns for Go applications in production environments

How to Mitigate CVE-2025-47906

Immediate Actions Required

  • Update Go installations to the patched version addressing this vulnerability
  • Audit PATH environment variable configurations to ensure all entries point to directories, not executables
  • Review application code for LookPath calls with potentially problematic input values
  • Implement input validation for any user-controlled data that may influence LookPath arguments

Patch Information

Golang has released a fix for this vulnerability. The patch can be found at Go.dev Change CL #691775. Additionally, detailed vulnerability information is available in the Go Vulnerability Report GO-2025-3956. Users should update their Go installations to incorporate this security fix.

The Golang Announcement provides official guidance on affected versions and upgrade paths.

Workarounds

  • Validate PATH environment variables before application execution to ensure all entries are directories
  • Avoid passing empty strings, ".", or ".." directly to LookPath
  • Implement wrapper functions that sanitize inputs before calling LookPath
  • Use absolute paths when executing binaries rather than relying on PATH resolution
bash
# Validate PATH entries before application execution
for path in $(echo $PATH | tr ':' ' '); do
  if [ -f "$path" ] && [ ! -d "$path" ]; then
    echo "WARNING: PATH entry '$path' is a file, not a directory"
  fi
done

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.