Malicious code in @yancyyu/agentcli (npm)
The npm package @yancyyu/agentcli contains malicious code that extracts OAuth credentials and API keys for Lark/Feishu from the system keychain (macOS) and credential store (Windows), then exfiltrates them to a hardcoded remote IP address over plaintext HTTP. A persistent launchd agent ensures the exfiltration loop survives reboots.
- Disclosed
- Last updated
- Blast radius
- Users of @yancyyu/agentcli who initialized the package and enabled telemetry; credential exposure affects Lark/Feishu accounts and potentially other systems relying on the same keychain/credential store.
- Ecosystems
- Attack vectors
- Affected entities
- @yancyyu/agentclinpm package containing malicious credential exfiltration code
The @yancyyu/agentcli npm package was found to contain malicious code that targets credentials for the Lark/Feishu collaboration platform. On macOS, the package extracts the AES-256-GCM master key from the system Keychain using the security command-line tool, then decrypts all stored Lark/Feishu credential files. On Windows, it uses PowerShell DPAPI to recover the same secrets from the registry.\n\nThe exfiltrated credentials include appId, appSecret, accessToken, refreshToken, userOpenId, and scope for every Lark/Feishu profile. These are batched and sent via HTTP POST to a hardcoded IP address (47.112.24.153) over plaintext HTTP. The package also silently rewrites legacy configured hosts to this bare-IP default, obscuring the true destination from users auditing their settings.\n\nPersistence is achieved through installation of a launchd agent (com.openhermit.telemetry.plist) that runs at boot with RunAtLoad and KeepAlive flags, invoking a telemetry worker every 5 minutes. The exfiltration loop is armed during documented first-run commands such as agentcli init, agentcli usage start, and agentcli usage autostart enable.\n\nThe exfiltrated OAuth tokens grant the attacker the ability to impersonate the installer within Feishu/Lark, potentially enabling account takeover and unauthorized access to organizational data.
Indicators of compromise
- Packages
- @yancyyu/agentcli
- Domains
- agentbus.skg.com
- IPs
- 47.112.24.153
- 159.75.231.98
Remediation
- Immediately uninstall @yancyyu/agentcli from all systems
- Revoke all Lark/Feishu OAuth tokens and API credentials that may have been exposed
- Remove the launchd agent at ~/Library/LaunchAgents/com.openhermit.telemetry.plist on macOS systems
- Audit Lark/Feishu account activity for unauthorized access or token usage
- Review npm audit logs and package.json for any other suspicious dependencies
- On Windows, check HKCU\Software\LarkCli\keychain for unauthorized access and reset affected credentials
- Monitor network traffic for connections to 47.112.24.153, 159.75.231.98:8088, and agentbus.skg.com
Sources
- GitHub Advisory GHSA-wqc4-72w7-qr9g · GitHub Advisory Database
Cite this entry
"Malicious code in @yancyyu/agentcli (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 28, 2026; last updated July 28, 2026. https://supplychainattack.org/incident/malicious-code-in-yancyyu-agentcli-npm-btyzt2
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in mangomind-agent (npm)
The npm package mangomind-agent contained malicious code that established a persistent WebSocket connection to a hardcoded relay server, enabling remote code execution and AI-agent-driven filesystem access on any host running the package. The vulnerability was discovered and reported by the OpenSSF.
npmAI agents & skillsCompromised packageMalicious commit - resolvedcritical
Malicious code in zyr-agent (npm)
zyr-agent (npm) shipped with malicious code that enables remote command execution through a hardcoded preview-slug endpoint controlled by the package author. The AI agent auto-executes tool calls (including bash commands) returned by the remote endpoint without user confirmation.
npmAI agents & skillsMalicious commitCompromised package - activecritical
Malicious code in @vanexalabs-ai/vanexa-agent (npm)
The npm package @vanexalabs-ai/vanexa-agent contains malicious code that implements a WebRTC daemon capable of executing arbitrary shell commands received from remote peers or signaling relay operators. The package uses obfuscated V8 bytecode to hide its pairing/authorization logic and includes a socket.json configuration that suppresses security scanning for malware, obfuscation, shell access, and network access.
npmAI agents & skillsCompromised packageMalicious commit - containedcritical
Malicious code in ai-analyzer (npm)
The npm package ai-analyzer contained malicious code in preinstall.js and postinstall.js scripts that exfiltrated system information (hostname, username, platform, git credentials) and used Burp Collaborator for out-of-band reconnaissance. The package's analyzeEmail() function also silently forwarded user-supplied content to an attacker-controlled endpoint.
npmCompromised packageMalicious commit