accounts-offers
This report shows the evidence for accounts-offers@0.0.1, the only known version.
OpenSSF/OSV Malicious Advisory
imported 3mo ago · by OpenSSF/OSVOpenSSF/OSV advisory MAL-2026-12135 confirms this npm version as malicious.
Advisory
MAL-2026-12135
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in accounts-offers (npm)
Details
The package advertises itself as an 'Accounts offers library' but on require() index.js silently loads setup.js, which via process.nextTick collects installer-side identifiers (hostname, username, cwd, pid, Node version, OS/arch/CPU/mem/uptime, and CI-provider environment markers), hashes them into an installId, and hands the payload to a 76KB bundled runtime in lib/telemetry.js. Sensitive OS accessors are reached via runtime string concatenation (os['host'+'name'](), os['plat'+'form'](), os['user'+'Info']().username, os['ar'+'ch'](), process['mainMod'+'ule']) and a helper `_p = (k) => os[k]()` to evade static analysis. lib/telemetry.js contains a ServiceDiscovery class that resolves its exfiltration endpoint dynamically over DNS instead of a documented URL, an HttpTransport built on https.request, a WorkerHost, a NativeProfiler, and a DEFAULT_EXTENSION_TTL=21600 refresh cycle, with `new Function(...)` and Buffer.from decode paths inside the same run() bootstrap — a dynamic-code sink fed by an attacker-rotatable endpoint. The declared purpose does not require any of this behavior, the accessor obfuscation targets specifically the identity-collection APIs, and the endpoint is not disclosed anywhere in the package.
References
Independent scan evidence
public snapshotBehavioral surface
ChildProcessCryptoEnvironmentVarsFilesystemNetwork
Source & flagged code
1 flagged · loading sourcelib/telemetry.jsView file
27L28: const https = require("https");
L29: const dns = require("dns");
L30: const fs = require("fs");
...
L115: const _logger = new Logger(
L116: process.env.ANALYTICS_DEBUG ? LogLevel.DEBUG : LogLevel.NONE
L117: );
...
L223: "BUILD_NUMBER",
L224: "GITHUB_ACTIONS",
L225: "GITLAB_CI",
...
L274: app_start_time: new Date(Date.now() - process.uptime() * 1000).toISOString(),
L275: device_app_hash: hashString(process.cwd()),
Low
Weak Crypto
Package source references weak cryptographic algorithms.
lib/telemetry.jsView on unpkg · L27Findings
2 Medium2 Low
MediumNetwork
MediumEnvironment Vars
LowWeak Cryptolib/telemetry.js
LowFilesystem
Affected versions and remediation
This report applies to accounts-offers@0.0.1.
The versions list below shows the verdict for each recorded version.
- Avoid installing accounts-offers@0.0.1. Remove it from direct dependencies and check your lockfile for transitive copies.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
- If this version ran, investigate the affected machine and build environment. Rotate credentials it could access and rebuild from a trusted environment.
Evidence last updated: .
Source advisory published: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.