VDB
GCVE-110-OSM-2026-10711
GCVE-110-OSM-2026-10711
Advisory PublishedCVSS 9.6/10
@next-fonts/font is a typosquat of Next.js's @next/font. Its exported Inter() function (mimicking next/font/google) decodes a base64 blob via atob(), then executes it through spawn('node','-e', code) with an eval(code) fallback. The decoded payload uses on-chain data as a C2 channel: it queries api.trongrid.io or fullnode.mainnet.aptoslabs.com for a transaction tied to hardcoded wallet addresses, retrieves that transaction's input data from BSC RPC endpoints (bsc-dataseed.binance.org, bsc-rpc.publicnode.com) via eth_getTransactionByHash, XOR-decrypts the returned bytes, and evals the resulting JavaScript. The result is arbitrary attacker-controlled code execution on any Node process that imports the package and invokes Inter(), with no relation to font functionality. Obfuscation (base64-hidden payload, node -e detached spawn with eval fallback, blockchain-mediated fetch) conceals the downloader from casual inspection.
Judge assessment: This looks like a typosquatted npm package built for arbitrary code execution by a threat actor targeting developers who import a fake `@next-fonts/font` in place of Next.js font utilities. The entrypoint `index.js` decodes a hidden base64 blob, runs it with `spawn('node', ['-e', code], { detached: !0, stdio: 'ignore' })`, and falls back to `eval(code)`, which is classic loader behavior rather than font handling. The decoded payload reaches out to `api.trongrid.io`, `fullnode.mainnet.aptoslabs.com`, `bsc-dataseed.binance.org`, and `bsc-rpc.publicnode.com`, then XOR-decrypts transaction data and executes the result, giving the attacker remote arbitrary JavaScript execution. The brand-new account, rapid versioning, and obfuscation corroborate intent and make the OSV advisory credible.
ENTRY
index.js (main: index.js)
OBFUSCATION
- Decoded Base64 Content in index.js
- Base64 Encoded Payload in index.js: ""Z2xvYmFsWyJfViJdPSJDNS10ZXN0IjtnbG9iYWwucj1yZXF1aXJlO2lmKHR5cGVvZiBtb2R1bGU9PT0..."
- Obfuscation (osm-deobfuscator): unknown in index.js
- recovered 2 urls, 4 domains from decoded/deobfuscated content
ADDITIONAL FINDINGS
- Dynamic Code Execution in index.js: "eval(code)"
- Silent Process Execution in index.js: "stdio:"ignore""
- Brand New Package
- Very New NPM Publisher Account
- Rapid Version Publishing
PAYLOAD FILES
index.js
Weaknesses (CWE)
CWE-506Embedded Malicious Code
Risk Scores
CVSS 3.1
9.6/10
Critical · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
Affected Products
| Vendor | Product | Versions | Platforms |
|---|---|---|---|
| unknown | @next-fonts/font | all (affected) | — |
Aliases
Browse GCVE Records
867 records in the GCVE database · Updated September 2, 2026
No matching records found.
Explore Further
Investigate this vulnerability in the interactive console or download the raw GCVE record.