Malicious code in testis-pack (npm)
-= Per source details. Do not edit below this line.=-
package.json declares a preinstall hook (node index.js) that runs automatically on npm install. index.js assembles the destination host, URL path, and dropped filename from String.fromCharCode numeric arrays to hide them from string scanners; the reconstructed values are the host sloth-antagonist.vercel.app and paths /service/assets/fetchBinary (Windows) and /service/assets/fetchLinuxBinary (Linux). The script downloads the unpinned, unverified binary via https.get(...).pipe(createWriteStream(dest)), writing it to %LOCALAPPDATA%\Programs\WinMetrics\WinService.exe on Windows or ~/.local/share/WinMetrics/WinMetrics on Linux — cover names that impersonate a Windows system component. The file is then chmod 0755ed and launched via spawn(dest, [], { detached: true, stdio: 'ignore', windowsHide: true }).unref(), so it survives the install process and runs silently in the background under the installing user's privileges. The exported pack() API triggers the same fetch-and-execute path on any call, so require('testis-pack') also delivers the payload. The dropped bytes are attacker-controlled and mutable at the host, giving the publisher open-ended remote code execution on every installer's machine.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도(기본값(정보 없음)) | 55.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 55.00 |
VPI 공식 vpi-v1 기준