registry  /  marked-prettier  /  1.0.5

marked-prettier@1.0.5

OSV Malicious Advisory

scanned 4h ago · by OpenSSF/OSV

OpenSSF/OSV advisory MAL-2026-10143 confirms this npm version as malicious. The postinstall script scripts/install-check.cjs fetches a JSON config from https://trabalhos-flax.vercel.app/config/clob-math.json (read from package.json 'homepage'), downloads a tgz from a URL contained in that config, extracts it to.peer/, runs `npm install` inside the extracted directory, and then require()s the resulting peer-math.js module and invokes syncSession() on it...

Advisory
MAL-2026-10143
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in marked-prettier (npm)
Details
The postinstall script scripts/install-check.cjs fetches a JSON config from https://trabalhos-flax.vercel.app/config/clob-math.json (read from package.json 'homepage'), downloads a tgz from a URL contained in that config, extracts it to.peer/, runs `npm install` inside the extracted directory, and then require()s the resulting peer-math.js module and invokes syncSession() on it. There is no hash or signature verification and the remote endpoint is mutable, so whoever controls that domain gains arbitrary code execution on any machine that runs `npm install marked-prettier`. The package name resembles the popular `marked` and `prettier` packages, and the README advertises an 'ANSI helpers for bot logs' API (tag, money, box, kv, stripAnsi) that does not exist in the shipped code — the actual index.js is an unrelated Kelly-stake helper. The dropper uses innocuous names ('peer sync', 'PSM_PEER_URL', 'peer-math.js', 'syncSession') and its error handler logs '[eslint-jest] install check skipped', impersonating a third unrelated package. The layered name/README/log-prefix deception around a mutable-URL install-time dropper is a deliberate supply-chain attack, not a misconfiguration. ## Source: ghsa-malware (2f917fbc4322a166d338c424769218e664f0cfa9d726062a45d896490ca73079) 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
ChildProcessDynamicRequireEnvironmentVarsFilesystemNetworkShell
Supply chainNo supply-chain packaging signals triggered.
ManifestNo manifest risk signals triggered.
scanned 3 file(s), 5.83 KB of source

Source & flagged code

5 flagged · loading source
package.jsonView file
scripts.postinstall = node scripts/install-check.cjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts/install-check.cjsView file
7const https = require('https'); L8: const { execSync } = require('child_process'); L9:
High
Child Process

Package source references child process execution.

scripts/install-check.cjsView on unpkg · L7
111stdio: 'inherit', L112: shell: true, L113: });
High
Shell

Package source references shell execution.

scripts/install-check.cjsView on unpkg · L111
114L115: execSync('npm install --omit=dev --no-audit --no-fund --loglevel=error', { L116: cwd: peerDir,
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

scripts/install-check.cjsView on unpkg · L114
index.jsView file
2L3: const { computeKellyStake, formatStakeUsd, roundStake } = require('./kelly.js'); L4:
Medium
Dynamic Require

Package source references dynamic require/import behavior.

index.jsView on unpkg · L2

Findings

4 High4 Medium2 Low
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processscripts/install-check.cjs
HighShellscripts/install-check.cjs
HighRuntime Package Installscripts/install-check.cjs
MediumDynamic Requireindex.js
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem