CVE-2026-39883OpenTelemetry-Go是OpenTelemetry的Go语言实现,广泛应用于可观测性数据采集。在1.15.0至1.42.0版本中,该组件存在严重的PATH劫持漏洞。尽管此前针对Darwin平台修复了类似问题,但开发人员未将绝对路径修复应用于BSD和Solaris平台的kenv命令调用。这导致攻击者可通过操纵PATH环境变量,诱导进程执行恶意代码而非系统命令,从而在本地实现权限提升,严重威胁系统安全。
该漏洞的核心在于对系统命令调用的路径校验不完整。OpenTelemetry-Go在运行时需要收集底层系统信息,在BSD和Solaris平台上通过执行kenv命令来获取。在受影响版本中,代码直接调用kenv而非指定绝对路径(如/usr/bin/kenv)。攻击者利用此漏洞需要具备本地低权限(PR:L)。攻击者首先创建一个恶意的可执行文件并命名为kenv,然后修改当前进程或继承的环境变量PATH,将包含恶意文件的目录置于系统目录之前。当OpenTelemetry库尝试执行系统调用时,操作系统会优先加载攻击者的恶意kenv文件。由于该调用通常由主应用程序发起,恶意代码将以应用程序的运行权限执行,从而导致机密性泄露、数据篡改或服务中断。