-= Per source details. Do not edit below this line.=-
On npm install, the preinstall lifecycle script collects installer host identity (hostname, username, cwd) and enumerates CI-related environment variable names, base64url-encodes the collected data, chunks it into DNS labels, and transmits it via both a DNS lookup and an HTTP GET to a hardcoded subdomain of oob.lyomeri.com (e.g. easypanel-ctl.<encoded-chunk>.oob.lyomeri.com, path /npm/<encoded>). The shipped module body is a stub (module.exports = {}), so the package has no legitimate runtime functionality; its only effect on install is the recon beacon. The destination is an out-of-band interaction domain unrelated to the easypanel.io publisher, and the encoding plus DNS-label chunking is a covert-channel exfiltration pattern. The name easypanel-ctl (with an empty stub body) is consistent with a dependency-confusion lure targeting installers of an internal or unrelated easypanel package.
{
"malicious-packages-origins": [
{
"import_time": "2026-09-04T04:21:21.185722652Z",
"id": "IN-MAL-2026-019457",
"versions": [
"1.0.0"
],
"source": "amazon-inspector",
"modified_time": "2026-09-04T03:46:26Z",
"sha256": "e9eb01006041231d7388c6aeb0c74288b35a8c72cf5b1e61c90e1e4f9d6d37c7"
}
]
}"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/easypanel-ctl/MAL-2026-15898.json"
{
"evidence_files": [
{
"path": "preinstall.js",
"tlsh": "181123b4d16092bd057162c0686a46a29277efd130e2c9c0683a66416fd26920bb38fe",
"sha256": "acb0705a1355ae0935dc978ec0525d5ae3c51cdf7c7f631db8338896e0121aa6"
}
],
"package_integrity": [
{
"filename": "easypanel-ctl-1.0.0.tgz",
"hashes": {
"sha1": "2a488068fafa9202bb566b1a893a10fb193fd811",
"sha512_sri": "sha512-FZ0LjCd3NzVqrTEdDs6vq88ReL9+Gyxb1hyMco+nXUzn7qGB27gyvcc4q6sjVjDTtboVnTCCcFNQZdPJ/IFE+g=="
}
}
]
}
[
{
"description": "The product contains code that appears to be malicious in nature.",
"cweId": "CWE-506",
"name": "Embedded Malicious Code"
}
]