Malicious code in aes-decode-runner-pro (npm)
-= Per source details. Do not edit below this line.=-
On require('aes-decode-runner-pro'), the entry point index.js immediately invokes pkg.run() (lines 1-3: const pkg = require("./custom-codec"); pkg.run();), which AES-256-GCM-decrypts a hardcoded ciphertext bundle using a hardcoded passphrase and salt shipped in src/config/defaults.js (DEFAULT_AES_PASSPHRASE = "default-dev-passphrase", DEFAULT_AES_SALT = "encode-npm-c-salt", DEFAULT_FINAL_ENCODED_TEXT = "wHKEM3UBnIY0UBU6:..."), passes the result through two additional custom codecs, and finally executes the cleartext with new Function(String(decoded.decodedPlainText))() at src/pipeline/custom-codec-pipeline.js:54. The README advertises only library functions and does not disclose this auto-execution behavior. Layered obfuscation (position codec + encode-decode codec + AES-GCM with an embedded key) whose sole in-package consumer is the load-time run() entry serves only to hide executable code from static review; the consuming developer cannot determine what runs without first executing it. The decrypted payload is fully attacker-controlled and runs in the installer's Node process whenever any downstream module imports this package.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도(기본값(정보 없음)) | 55.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 55.00 |
VPI 공식 vpi-v1 기준