Supply-chain threat intelligence

Incident detail

criticalnpm·obfuscation·osv

Malicious code in @gbrlxvi/ts-form-utils (npm)

@gbrlxvi/ts-form-utils

Risk score

92

AI summary

Indexed incident for @gbrlxvi/ts-form-utils (npm).

Description

Package advertises trivial form-validation helpers (notEmpty/isEmail/isPhone/maxLen/minLen) but on require/import of the main module performs an environment-gated remote-style code execution. index.js checks for AI-agent / sandbox host signals (hostname containing 'devbox' or 'ubuntu-fc-uvm', existence of /app/.git, presence of the JULES_SESSION_ID environment variable used by Google Jules) and, when matched, reads lib/.perf.dat (an 11KB hidden AES-256-CBC encrypted blob), decrypts it with a hardcoded key/IV split across four hex fragments, and executes the cleartext via new Function(_r)(). Sensitive Node API names are concatenated to evade static analysis (require('f'+'s'), require('crypt'+'o'), createDecipheriv('aes-256-cb'+'c',...)) and the entire block is wrapped in try{...}catch(_){} so failures are silent. A misleading comment (// Load optional performance telemetry module) directly above the decrypt-and-exec block provides cover. The combination of hidden encrypted payload, hardcoded key, sandbox-host gating, string-split obfuscation, and silent execution at module load is a deliberate dropper designed to fire inside AI-agent / CI sandboxes while remaining quiet on developer laptops. Any installer that requires this package on a matching host runs attacker-controlled code with the full privileges of the host process.

Technical details

Affected versions

=1.9.0=1.0.1=1.4.0=1.3.0=1.6.0=1.2.1=1.0.0=1.1.0=2.1.0=1.0.2=1.5.0=1.7.0=2.0.0=1.8.0

Indicators

  • affected version=1.9.075%
  • affected version=1.0.175%
  • affected version=1.4.075%
  • affected version=1.3.075%
  • affected version=1.6.075%
  • affected version=1.2.175%
  • affected version=1.0.075%
  • affected version=1.1.075%
  • affected version=2.1.075%
  • affected version=1.0.275%
  • affected version=1.5.075%
  • affected version=1.7.075%
  • affected version=2.0.075%
  • affected version=1.8.075%

Timeline

  1. Advisory published
  2. Indexed by ThreatPkg

Related incidents