Skip to content
Heist/ feed
Back to feed
Unrated

Malicious code in @ecg-internal/favourites-ui (npm)

Type: advisorySources: OSV

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (e0f37fd70766d2ddda31ffe3b985eba596fd927fdd589a9ceff04d4a695e3bb1) The package publishes under the internal-looking scope `@ecg-internal/` and ships a `postinstall` script (`beacon.cjs`) plus a top-level `require()` side effect in `index.js` that call a `fire()` function. `fire()` POSTs a JSON payload containing `os.hostname()`, the install `__dirname`, `process.cwd()`, and the Node version to the hardcoded bare-IP endpoint `http://185.158.107.175:8787/_ah/dc` over plain HTTP. `index.js` otherwise exports a `Proxy` whose property access returns a no-op function, and an in-source comment states that 'a build that completes and calls back is cleaner evidence' — the module provides no real functionality and exists only to produce an install-time callback. The combination of an internal-scope name, a stub module, and an automatic bare-IP beacon carrying installer host identifiers is a dependency-confusion probe: build pipelines that mistakenly resolve this public package instead of the intended private `@ecg-internal/favourites-ui` disclose internal hostnames and build-path information to the operator of 185.158.107.175. ## Source: ghsa-malware (e133233e109135c00c63c294eddb92ed208a79ef68deb740d86bc60e59e220a1) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a differen

Products
@ecg-internal/favourites-ui
Affected versions
0.0.1, 1.0.0, 1.1.0, 2.0.0, 2.0.1, 3.0.0, 99.0.1
Fixed versions
Not specified
CVEs
Not specified
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 20:41 UTC · Revision 1

Source evidence

Malicious code in @ecg-internal/favourites-ui (npm)

core-osv · Original source

Published 23 Oct 2026, 01:59 UTC

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (e0f37fd70766d2ddda31ffe3b985eba596fd927fdd589a9ceff04d4a695e3bb1) The package publishes under the internal-looking scope `@ecg-internal/` and ships a `postinstall` script (`beacon.cjs`) plus a top-level `require()` side effect in `index.js` that call a `fire()` function. `fire()` POSTs a JSON payload containing `os.hostname()`, the install `__dirname`, `process.cwd()`, and the Node version to the hardcoded bare-IP endpoint `http://185.158.107.175:8787/_ah/dc` over plain HTTP. `index.js` otherwise exports a `Proxy` whose property access returns a no-op function, and an in-source comment states that 'a build that completes and calls back is cleaner evidence' — the module provides no real functionality and exists only to produce an install-time callback. The combination of an internal-scope name, a stub module, and an automatic bare-IP beacon carrying installer host identifiers is a dependency-confusion probe: build pipelines that mistakenly resolve this public package instead of the intended private `@ecg-internal/favourites-ui` disclose internal hostnames and build-path information to the operator of 185.158.107.175. ## Source: ghsa-malware (e133233e109135c00c63c294eddb92ed208a79ef68deb740d86bc60e59e220a1) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a differen

osv:MAL-2026-18208

@ecg-internal/favourites-ui

Fixed versions: Not specified

Complete source record
{
  "id": "3a8955fa1003a9b0d0e3ef3c21fa411e80a107308deb15642f7b5a18a2364db0",
  "url": "https://osv.dev/vulnerability/MAL-2026-18208",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Malicious code in @ecg-internal/favourites-ui (npm)",
    "summary": "--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (e0f37fd70766d2ddda31ffe3b985eba596fd927fdd589a9ceff04d4a695e3bb1) The package publishes under the internal-looking scope `@ecg-internal/` and ships a `postinstall` script (`beacon.cjs`) plus a top-level `require()` side effect in `index.js` that call a `fire()` function. `fire()` POSTs a JSON payload containing `os.hostname()`, the install `__dirname`, `process.cwd()`, and the Node version to the hardcoded bare-IP endpoint `http://185.158.107.175:8787/_ah/dc` over plain HTTP. `index.js` otherwise exports a `Proxy` whose property access returns a no-op function, and an in-source comment states that 'a build that completes and calls back is cleaner evidence' — the module provides no real functionality and exists only to produce an install-time callback. The combination of an internal-scope name, a stub module, and an automatic bare-IP beacon carrying installer host identifiers is a dependency-confusion probe: build pipelines that mistakenly resolve this public package instead of the intended private `@ecg-internal/favourites-ui` disclose internal hostnames and build-path information to the operator of 185.158.107.175. ## Source: ghsa-malware (e133233e109135c00c63c294eddb92ed208a79ef68deb740d86bc60e59e220a1) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a differen",
    "evidence": "osv:MAL-2026-18208",
    "products": [
      {
        "name": {
          "value": "@ecg-internal/favourites-ui",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "99.0.1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "1.1.0",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "0.0.1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.0.0",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.0.1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "1.0.0",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.0.0",
            "evidence": "/affected/0/versions"
          }
        ]
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "MAL-2026-18208",
      "aliases": [
        "GHSA-g8hh-8pxg-jr3x",
        "MAL-2026-18208"
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "@ecg-internal/favourites-ui",
            "purl": "pkg:npm/%40ecg-internal/favourites-ui",
            "ecosystem": "npm"
          },
          "versions": [
            "99.0.1",
            "1.1.0",
            "0.0.1",
            "3.0.0",
            "2.0.1",
            "1.0.0",
            "2.0.0"
          ],
          "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."
              },
              {
                "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."
              },
              {
                "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."
              },
              {
                "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/@ecg-internal/favourites-ui/MAL-2026-18208.json",
            "indicators": {
              "evidence_files": [
                {
                  "path": "beacon.cjs",
                  "tlsh": "ef3140eba8e1a0489aa77098c94b4409b17af0068501ab54fd5c92919f6293c33fa8dc",
                  "sha256": "f61d875bd327c15818875905fb8f466a56f444caacf34198c6b6d5f8990d6384"
                },
                {
                  "path": "README.md",
                  "tlsh": "25d02b346421657154250b7609a1b0685bf8d1b8c81605bd545e9b5c505ba3c432267a",
                  "sha256": "e904db9c4056812ad5c68cf8e7cea1437f45aacf9270ea321f16f64753718f6a"
                }
              ],
              "package_integrity": [
                {
                  "hashes": {
                    "sha1": "6a1088337c8bf4e508c3bae39858fb2186217c3d",
                    "sha512_sri": "sha512-RmdD9srT+q1xsiBHG0Zln/4gnBkGbKMSr9GCNpkbQj6uP0voj2nVvUqgqcf96+hiO38GTxtj/ETxYkeH6WoXzA=="
                  },
                  "filename": "favourites-ui-99.0.1.tgz"
                }
              ]
            }
          }
        }
      ],
      "modified": "2026-10-23T02:45:05.064957919Z",
      "provider": "osv",
      "references": [
        "https://www.npmjs.com/package/@ecg-internal/favourites-ui/v/99.0.1",
        "https://www.npmjs.com/package/@ecg-internal/favourites-ui/v/1.1.0",
        "https://www.npmjs.com/package/@ecg-internal/favourites-ui/v/0.0.1",
        "https://www.npmjs.com/package/@ecg-internal/favourites-ui/v/3.0.0",
        "https://www.npmjs.com/package/@ecg-internal/favourites-ui/v/2.0.1",
        "https://www.npmjs.com/package/@ecg-internal/favourites-ui/v/1.0.0",
        "https://www.npmjs.com/package/@ecg-internal/favourites-ui/v/2.0.0",
        "https://github.com/advisories/GHSA-g8hh-8pxg-jr3x"
      ],
      "provider_metadata": {
        "malicious-packages-origins": [
          {
            "id": "IN-MAL-2026-021594",
            "sha256": "30f3affd8f27bbe822a15d3f6656cf55c431e37d1f2910e00e8272d94915b7ac",
            "source": "amazon-inspector",
            "versions": [
              "99.0.1"
            ],
            "import_time": "2026-10-23T02:25:38.36794538Z",
            "modified_time": "2026-10-23T01:59:31Z"
          },
          {
            "id": "IN-MAL-2026-021598",
            "sha256": "e0f37fd70766d2ddda31ffe3b985eba596fd927fdd589a9ceff04d4a695e3bb1",
            "source": "amazon-inspector",
            "versions": [
              "1.1.0"
            ],
            "import_time": "2026-10-23T02:25:38.682901038Z",
            "modified_time": "2026-10-23T01:59:59Z"
          },
          {
            "id": "IN-MAL-2026-021595",
            "sha256": "ef29926bcac7698a54c3901bbbda0f936ed6ed3ef3dbc70e771c16a4faf5b682",
            "source": "amazon-inspector",
            "versions": [
              "0.0.1"
            ],
            "import_time": "2026-10-23T02:25:38.444958312Z",
            "modified_time": "2026-10-23T01:59:39Z"
          },
          {
            "id": "IN-MAL-2026-021600",
            "sha256": "f5e6908e6df16b99b21a45327bb85dc80139d424ad363d4121b34c10651833e3",
            "source": "amazon-inspector",
            "versions": [
              "3.0.0"
            ],
            "import_time": "2026-10-23T02:25:38.775440128Z",
            "modified_time": "2026-10-23T02:00:15Z"
          },
          {
            "id": "IN-MAL-2026-021597",
            "sha256": "509adadad793d6028b802d1aefca6e66e1bfce35018b8fc08db0c7211278abc6",
            "source": "amazon-inspector",
            "versions": [
              "2.0.1"
            ],
            "import_time": "2026-10-23T02:25:38.626416608Z",
            "modified_time": "2026-10-23T01:59:52Z"
          },
          {
            "id": "IN-MAL-2026-021596",
            "sha256": "8004c2f345cdf30eb4af28a1a54f56be6cdc586bd9666526b6b06825e15ef22f",
            "source": "amazon-inspector",
            "versions": [
              "1.0.0"
            ],
            "import_time": "2026-10-23T02:25:38.553544313Z",
            "modified_time": "2026-10-23T01:59:45Z"
          },
          {
            "id": "IN-MAL-2026-021599",
            "sha256": "dd6fb0a78c783012998186014c58590785850e15628a0bb60ed6092d5a48569f",
            "source": "amazon-inspector",
            "versions": [
              "2.0.0"
            ],
            "import_time": "2026-10-23T02:25:38.735383181Z",
            "modified_time": "2026-10-23T02:00:07Z"
          },
          {
            "id": "GHSA-g8hh-8pxg-jr3x",
            "ranges": [
              {
                "type": "SEMVER",
                "events": [
                  {
                    "introduced": "0"
                  }
                ]
              }
            ],
            "sha256": "e133233e109135c00c63c294eddb92ed208a79ef68deb740d86bc60e59e220a1",
            "source": "ghsa-malware",
            "import_time": "2026-10-23T02:36:25.379009569Z",
            "modified_time": "2026-10-23T02:05:25Z"
          }
        ]
      }
    },
    "related_cves": [],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 411760,
  "published_at": "2026-10-23T01:59:31+00:00"
}