Skip to content
Heist/ feed
Back to feed
Unrated

Malicious code in @flexmr/ui (npm)

Type: advisorySources: OSV

`@flexmr/ui@99.99.99` runs `node beacon.js preinstall`, `node beacon.js install`, and `node beacon.js postinstall` during installation. These lifecycle scripts send the package name, lifecycle event, a fixed token, and host identity details to `177.7.60.239:48080` and encode the hostname in a DNS query under `oob.recon.dev`, probing whether a build resolves the package from the public npm registry; it was published on 2026-10-13. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (7ecabe1286807a163b250140c9973d326849393789d1e1bcdc4ba4422dc39532) @flexmr/ui@99.99.99 is a scope-squatting placeholder on public npm with package.json declaring preinstall, install, and postinstall all invoking `node beacon.js`, so the payload fires automatically on `npm install`. beacon.js collects os.hostname(), os.userInfo().username, process.cwd(), platform, node version, package name, and the lifecycle event, then transmits them via HTTP GET to the hardcoded bare-IP endpoint http://177.7.60.239:48080 and via a DNS lookup against the hardcoded callback domain oob.recon.dev. The 99.99.99 version is the standard dependency-confusion overshoot used to win resolution against an internal `@flexmr/ui`; any build that references that name will resolve this public package and execute the beacon. Publisher control of this scope slot additionally enables arbitrary future payloads to replace the current identity beacon.

Products
@flexmr/ui
Affected versions
99.99.99
Fixed versions
Not specified
CVEs
Not specified
Confirmed fixed CVEs
Not specified
Updated in this feed
30 Oct 2026, 19:46 UTC · Revision 1

Source evidence

Malicious code in @flexmr/ui (npm)

core-osv · Original source

Published 13 Oct 2026, 20:15 UTC

`@flexmr/ui@99.99.99` runs `node beacon.js preinstall`, `node beacon.js install`, and `node beacon.js postinstall` during installation. These lifecycle scripts send the package name, lifecycle event, a fixed token, and host identity details to `177.7.60.239:48080` and encode the hostname in a DNS query under `oob.recon.dev`, probing whether a build resolves the package from the public npm registry; it was published on 2026-10-13. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (7ecabe1286807a163b250140c9973d326849393789d1e1bcdc4ba4422dc39532) @flexmr/ui@99.99.99 is a scope-squatting placeholder on public npm with package.json declaring preinstall, install, and postinstall all invoking `node beacon.js`, so the payload fires automatically on `npm install`. beacon.js collects os.hostname(), os.userInfo().username, process.cwd(), platform, node version, package name, and the lifecycle event, then transmits them via HTTP GET to the hardcoded bare-IP endpoint http://177.7.60.239:48080 and via a DNS lookup against the hardcoded callback domain oob.recon.dev. The 99.99.99 version is the standard dependency-confusion overshoot used to win resolution against an internal `@flexmr/ui`; any build that references that name will resolve this public package and execute the beacon. Publisher control of this scope slot additionally enables arbitrary future payloads to replace the current identity beacon.

osv:MAL-2026-17879

@flexmr/ui

Fixed versions: Not specified

Complete source record
{
  "id": "77aa6872761ae644a745a31f1e9c47a8295a80ba6f62e9c9a675f1d08724e62c",
  "url": "https://osv.dev/vulnerability/MAL-2026-17879",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Malicious code in @flexmr/ui (npm)",
    "summary": "`@flexmr/ui@99.99.99` runs `node beacon.js preinstall`, `node beacon.js install`, and `node beacon.js postinstall` during installation. These lifecycle scripts send the package name, lifecycle event, a fixed token, and host identity details to `177.7.60.239:48080` and encode the hostname in a DNS query under `oob.recon.dev`, probing whether a build resolves the package from the public npm registry; it was published on 2026-10-13. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (7ecabe1286807a163b250140c9973d326849393789d1e1bcdc4ba4422dc39532) @flexmr/ui@99.99.99 is a scope-squatting placeholder on public npm with package.json declaring preinstall, install, and postinstall all invoking `node beacon.js`, so the payload fires automatically on `npm install`. beacon.js collects os.hostname(), os.userInfo().username, process.cwd(), platform, node version, package name, and the lifecycle event, then transmits them via HTTP GET to the hardcoded bare-IP endpoint http://177.7.60.239:48080 and via a DNS lookup against the hardcoded callback domain oob.recon.dev. The 99.99.99 version is the standard dependency-confusion overshoot used to win resolution against an internal `@flexmr/ui`; any build that references that name will resolve this public package and execute the beacon. Publisher control of this scope slot additionally enables arbitrary future payloads to replace the current identity beacon.",
    "evidence": "osv:MAL-2026-17879",
    "products": [
      {
        "name": {
          "value": "@flexmr/ui",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "99.99.99",
            "evidence": "/affected/0/versions"
          }
        ]
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "MAL-2026-17879",
      "aliases": [
        "MAL-2026-17879"
      ],
      "affected": [
        {
          "package": {
            "name": "@flexmr/ui",
            "purl": "pkg:npm/%40flexmr/ui",
            "ecosystem": "npm"
          },
          "versions": [
            "99.99.99"
          ],
          "database_specific": {
            "cwes": [
              {
                "name": "Embedded Malicious Code",
                "cweId": "CWE-506",
                "description": "The product contains code that appears to be malicious in nature."
              },
              {
                "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/@flexmr/ui/MAL-2026-17879.json",
            "indicators": {
              "evidence_files": [
                {
                  "path": "beacon.js",
                  "tlsh": "f351956ac6f5d17a25a730a143af00ac41b3e1a30b58cb80f88cc2551f55534133eef9",
                  "sha256": "bdee8d65c1c5b40df70e851eda298aa0729f0a618e11d702a6e9a35285c4e2c3"
                },
                {
                  "path": "package.json",
                  "tlsh": "baf0c0385415ed3728d657d50c3b044a75b24e9f4754a90542db409c96ce72b06bf32f",
                  "sha256": "1f2f8a19a112cf6e024d832449377f596b5cbebb6fe548cfc2cc8f0cdab0e775"
                }
              ],
              "package_integrity": [
                {
                  "hashes": {
                    "sha1": "4a3663fdfe01b9667f6f1070661fc6756a9fd0dc",
                    "sha512_sri": "sha512-IDOGuCVI7cigjtdE1C6MfKIRAkmWwemo6E/CDRTa+H1VtrmXecJ4FYObmgw5jl//0ui47T6Heuom0w7JnytTMQ=="
                  },
                  "filename": "ui-99.99.99.tgz"
                }
              ]
            }
          }
        }
      ],
      "modified": "2026-10-16T07:15:08.295017234Z",
      "provider": "osv",
      "references": [
        "https://www.npmjs.com/package/@flexmr/ui",
        "https://www.npmjs.com/package/@flexmr/ui/v/99.99.99"
      ],
      "provider_metadata": {
        "iocs": {
          "ips": [
            "177.7.60.239"
          ],
          "urls": [
            "http://177.7.60.239:48080"
          ],
          "files": [
            {
              "note": "preinstall script: node beacon.js preinstall; install script: node beacon.js install; postinstall script: node beacon.js postinstall",
              "paths": [
                "package.json"
              ],
              "source": "PACKAGE_ARCHIVE",
              "digests": {
                "sha256": "1f2f8a19a112cf6e024d832449377f596b5cbebb6fe548cfc2cc8f0cdab0e775"
              }
            },
            {
              "note": "Executed by the preinstall, install and postinstall scripts of @flexmr/ui@99.99.99.",
              "paths": [
                "beacon.js"
              ],
              "source": "PACKAGE_ARCHIVE",
              "digests": {
                "sha256": "bdee8d65c1c5b40df70e851eda298aa0729f0a618e11d702a6e9a35285c4e2c3"
              }
            }
          ],
          "domains": [
            "oob.recon.dev"
          ]
        },
        "malicious-packages-origins": [
          {
            "id": "IN-MAL-2026-021489",
            "sha256": "7ecabe1286807a163b250140c9973d326849393789d1e1bcdc4ba4422dc39532",
            "source": "amazon-inspector",
            "versions": [
              "99.99.99"
            ],
            "import_time": "2026-10-16T06:57:51.185101264Z",
            "modified_time": "2026-10-16T06:56:04Z"
          }
        ]
      }
    },
    "related_cves": [],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 337984,
  "published_at": "2026-10-13T20:15:56+00:00"
}