Malicious code in log-format-thread (npm)
-= Per source details. Do not edit below this line.=-
Package advertises itself as a log formatter but exposes an undocumented threadContent option on createLogger() that is forwarded to a worker thread which compiles and executes it via new Function('require', payload)(require) (src/worker.js lines 5-7, triggered from src/index.js lines 148-151). The eval only runs against a payload the caller explicitly supplies, so installing or requiring the package does not by itself execute attacker-controlled code, and there are no install hooks, no remote fetches, no credential reads, and no outbound exfiltration. However, the feature is undocumented in the README, is shaped like a backdoor primitive rather than logging functionality, and the package also pulls in axios and request despite the README claiming 'Zero dependencies'. Consumers who pass user-controlled or otherwise untrusted data into threadContent would expose their application to arbitrary code execution. Routing to human review so a maintainer can decide whether to publish a public advisory about the undocumented eval surface and the dependency mismatch.
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.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도(기본값(정보 없음)) | 55.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 55.00 |
VPI 공식 vpi-v1 기준