LWA-2026-13223 confirmed malware

@wardenfeng/cap-tester-server-linux-x64@0.1.1

Malicious code in @wardenfeng/cap-tester-server-linux-x64 (npm)

T1195.002 · Compromise Software Supply ChainT1059 · Command and Scripting InterpreterT1082 · System Information DiscoveryT1083 · File and Directory DiscoveryT1071.001 · Web ProtocolsT1095 · Non-Application Layer ProtocolT1105 · Ingress Tool Transfer

Analysis

This package ships no JavaScript and no lifecycle hooks: it contains only package.json and a single 8.5 MB prebuilt x86-64 ELF binary, cap-tester-server, described as a local backend for a "web native capability tester". The package contains no readable source, so the behaviour below is taken from the binary's embedded strings and package metadata. The binary is a Rust HTTP service (axum/hyper, tokio, rustls, zenoh 1.10.1) that starts a listener bound to 0[.]0[.]0[.]0 by default, configurable through the CAP_TESTER_HOST and CAP_TESTER_PORT environment variables and the --host/--port/--auth flags. HTTP Basic authentication is optional and off unless --auth is supplied, so a default start exposes the service on all interfaces without credentials. The routes it serves include /api/env (environment variables), /api/fs/list, /api/fs/read, /api/fs/write and /api/fs/write-binary (arbitrary filesystem read and write), /api/net/interfaces, /api/net/tcp/listen, /api/net/tcp/connect, /api/net/tcp/send, /api/net/tcp/close, /api/net/udp/send, /api/net/udp/broadcast, /api/net/udp/listen, /api/net/udp/stop, and /api/zenoh/open, /api/zenoh/put, /api/zenoh/subscribe, /api/zenoh/neighbors, /api/zenoh/status. Together these give any client that can reach the port read/write access to the host filesystem plus raw TCP, UDP and zenoh networking primitives. No network IOCs are present in the shipped files: there is no hardcoded command-and-control host, IP address or URL. The only IP literals in the binary are 0[.]0[.]0[.]0, 0[.]0[.]0[.]0:0 and 255[.]255[.]255[.]255, and the only URLs are the project repository link and documentation links for the Rust TLS and random-number crates. No credential, token, SSH key, cloud-credential or browser-store paths appear in the binary's strings.

analyzed by
Leitwacht
first seen
Oct 23, 2026, 06:56 AM
analyzed
Oct 23, 2026, 06:57 AM

Related advisories

browse all confirmed advisories →

Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.