Use of software with malware In kecack
Description
The gem's native extension build script (ext/.../extconf.rb) executes during gem install and contains a dropper rather than a real native build. Before create_makefile, it enumerates environment indicators to suppress itself inside analysis infrastructure: CI environment variables, hostname patterns matching uvm/firecracker/sandbox/vagrant, usernames matching sandbox/tester/analys/scanner, build paths under /opt/rubygems or /tmp, and a /proc/uptime check requiring the host to have been running for more than 30 minutes. It additionally requires developer-credential artifacts to be present on disk (/.ssh, ~/.gitconfig, ~/.gem/credentials, ~/.bundle, ~/.npmrc) before proceeding. When the gating passes, it double-forks, sleeps 20-40 minutes, then base64-decodes and eval's a Ruby payload that reconstructs a URL via XOR of a byte array, downloads http://45.138.122.177:8092/wgkit.tar.gz to /tmp/.w1.tgz, extracts to /tmp/.w1, and executes bash /tmp/.w1/wg_install.sh. The shipped native source is a trivial empty Init_Kecack stub with no real C functionality — the extension exists only to carry the dropper. The target host 45.138.122.177 is a bare IP unrelated to any legitimate publisher, the fetched content is unpinned and unverified, and the URL is obfuscated with XOR+base64.
The OpenSSF Package Analysis project identified 'kecack' @ 1.0.0 (rubygems) as malicious.
It is considered malicious because:
The package executes one or more commands associated with malicious behavior.
Mitigation
Update Impact
Minimal update. May introduce new vulnerabilities or breaking changes.
Ecosystem | Component | Affected version |
|---|---|---|
rubygems |
Aliases
References