quant-buddy-view
Audited by Socket on Sep 20, 2026
4 alerts found:
Anomalyx4SUSPICIOUS: the skill is mostly aligned with its stated QuantBuddy dashboard-publishing purpose and uses first-party QuantBuddy endpoints, but it has medium risk due to transitive installation of another skill, public publishing/file transfer, and sensitive credential/signature handling. This is not confirmed malware, but its operational footprint and trust chain are broader than a simple page tool.
The fragment primarily implements a configured API client and local trace/state management. It does not show clear intentional malware or direct unauthorized data theft. The principal security concern is the automatic self-update mechanism: remotely selected GitHub archives are executed through a detached subprocess, with a --trust-tls flag and no visible signature or checksum validation. API-key exposure also depends on the integrity of config files, environment variables, and the configured endpoint. Review self_update.py and deployment configuration before treating the package as trusted.
This module is best characterized as an HTML snapshotter that renders user-supplied local files or remote URLs with Playwright, then serializes the transformed DOM (including embedded canvas pixel data) to a caller-chosen output file. While the snippet does not show classic malware/exfiltration logic, it has two meaningful security risks: (1) it weakens browser security settings during rendering of untrusted content, and (2) it uses non-standard, environment-dependent module discovery/loading for Playwright that could be abused for dependency/path hijacking in hostile environments. Additionally, it can unintentionally capture and persist sensitive content from the rendered page because it writes the full DOM to disk.
No clear malicious or supply-chain attack behavior is present. The code performs its stated HTML retrofit function, including explicitly requested remote fetching and file writing. Security review is warranted for SSRF and path traversal/output overwrite risks if untrusted users can control parameters. The provided fragment also appears syntactically incomplete because the final `main(` call is not closed.