relative-time-live@0.1.0
Malicious code in relative-time-live (npm)
Analysis
This package presents itself as a self-updating relative-time formatting utility with optional React/Vue bindings, and its visible code does implement that functionality cleanly. However, its published code unconditionally side-effect-imports a hard dependency (dom-weave) at module load, and that dependency in turn dynamically loads a further package (sync-logger). The deepest package masquerades as a logging utility but, on import, decodes a large embedded base64 blob by XOR-ing it against a fixed 16-byte key and immediately executes the decoded result as code via the Function constructor, all wrapped in an error-swallowing try/catch to stay silent on failure. The net effect is that merely installing or importing this relative-time package causes hidden, obfuscated code to run on the host through a multi-tier dependency chain whose lower tiers look innocuous in isolation. This staged structure (appealing top-level utility -> innocuous middle helper -> obfuscated self-executing payload leaf) is characteristic of a deliberate supply-chain dropper.
- analyzed by
- Leitwacht
- first seen
- Jun 17, 2026, 05:22 PM
- analyzed
- Jun 17, 2026, 05:29 PM
Related advisories
- scan-only@0.3.0
- @public-for-cdao/api@99.99.99
- @public-for-cdao/signer@99.99.99
- @public-for-cdao/types@99.99.99
- @public-for-cdao/backend@99.99.99
- @public-for-cdao/common@99.99.99
- @public-for-cdao/hooks@99.99.99
- @public-for-cdao/utils@99.99.99
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.