Skip to content
Heist/ feed
Unrated

Malicious code in @rutxploit-sec/waves-icons (npm)

Type: advisorySource: OSV1 source record

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (bdeb076eee35958fd0520e7f9cca9d361c47f02cb81c73288609ecdfb60bdbb1) @rutxploit-sec/waves-icons is a dependency-confusion proof-of-concept squatting the internal scope name @waves/icons. Its package.json declares a preinstall lifecycle hook that runs inline Node code (node -e...) which reads os.hostname() and os.userInfo().username and transmits them via http.get to a hardcoded beacon URL http://127.0.0.1:8099/?pkg=&host=&user=. The hook also prints a marker string '[BUGBOUNTY] @waves/icons dep confusion EXECUTED' to confirm execution. The code path runs automatically on npm install on any machine that resolves this squatted scope, collecting installer host identifiers and sending them to an attacker-chosen endpoint. Although the beacon is currently set to loopback (127.0.0.1), it is a hardcoded destination the publisher controls and can trivially be changed or paired with an active listener; the install-time execution, host reconnaissance, and unsolicited outbound HTTP are present as published.

Announced Source revision 1
Original source ↗

MAL-2026-17291

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: osv:MAL-2026-17291

@rutxploit-sec/waves-icons

Source reference: /affected/0/package/name

Affected versions
1.0.0

Source reference: /affected/0/versions

Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "package": {
      "name": "@rutxploit-sec/waves-icons",
      "purl": "pkg:npm/%40rutxploit-sec/waves-icons",
      "ecosystem": "npm"
    },
    "versions": [
      "1.0.0"
    ],
    "database_specific": {
      "cwes": [
        {
          "name": "Embedded Malicious Code",
          "cweId": "CWE-506",
          "description": "The product contains code that appears to be malicious in nature."
        }
      ],
      "source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@rutxploit-sec/waves-icons/MAL-2026-17291.json",
      "indicators": {
        "evidence_files": [
          {
            "path": "package.json",
            "tlsh": "9b019ef44520e8176d8e016c066f650bf1e25b464865ec219adf380cc3b86b90e7b6a5",
            "sha256": "b79ace4e230f024668e150c29a718d56941cdccdfa7cb88e981315ee7272fda6"
          }
        ],
        "package_integrity": [
          {
            "hashes": {
              "sha1": "24d672ef1264fcce6411cf2e43d2d2876e51c581",
              "sha512_sri": "sha512-TvAcEGknVKyde6DO5KwMgtc0ho5Be2Ese6cUYhzF/KrrH2WNsY1SVM4H1xdXea1BCfTeBpCDRPuCnSMlCfKvqw=="
            },
            "filename": "waves-icons-1.0.0.tgz"
          }
        ]
      }
    }
  }
]

Publisher severity

No explicit severity was provided.

Event
#31932 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement