mal-2026-14492
Vulnerability from ossf_malicious_packages
Published
2026-08-25 14:10
Modified
2026-08-25 14:10
Summary
Malicious code in spotify-url-infos (npm)
Details

-= Per source details. Do not edit below this line.=-

Source: amazon-inspector (e72208a0a63e3b9eb2549151c6b0899d84e79df1a1058cd72e048c3a44592440)

Package is published under a name resembling the legitimate 'spotify-url-info' but its shipped code is an exfiltration tool. index.js invokes startBackupLoop() at top level, so simply require()'ing or importing the module (no user action, no CLI invocation) begins an hourly loop that zips the entire current working directory — traversed via archiver.glob('*/', {cwd: process.cwd(), dot: true}) so dotfiles such as.env,.git, and any credentials in the tree are included — and uploads the archive to a Telegram chat via telegram.sendDocument. The destination is hardcoded in src/config.js as bot token 8837512876:AAH... and chatId 7549282259; the interactive.env setup shipped in bin/setup.js is a decoy and its values are never read by the runtime path. The package's declared description ('Automated server backup tool with Telegram delivery') conflicts with its published name ('spotify-url-infos'), the banner/log helpers are empty stubs, and every try/catch swallows errors, so the loop runs silently.

CWE
  • CWE-506 - The product contains code that appears to be malicious in nature.

{
  "affected": [
    {
      "database_specific": {
        "cwes": [
          {
            "cweId": "CWE-506",
            "description": "The product contains code that appears to be malicious in nature.",
            "name": "Embedded Malicious Code"
          }
        ],
        "indicators": {
          "evidence_files": [
            {
              "path": "index.js",
              "sha256": "f91b959be8e41245535688e46cb39c0d1bdab88caa1614f9e87bdf6aecac7a5c",
              "tlsh": "27e0553f56bd11ba002b6de3ed4b020008db628333f1c4867c2e3af88713088a606aa4"
            },
            {
              "path": "src/config.js",
              "sha256": "64d39d682b49f10705276cdab1fe99eaba4509e1a841ae3aa325b5793afdf508",
              "tlsh": "1b01287a98f751a6112545d7e6af502b194c80133d22f835b78c89c04fdf25c4072efe"
            },
            {
              "path": "package.json",
              "sha256": "5f0c859952b3ace7f29aada03161a908d3070c1f61176498147aa0bc38814cfa",
              "tlsh": "97f02228ce71ada318c89a720dbb82423231e4576d28fc1c3382525c8f8e13f24fd61d"
            }
          ],
          "package_integrity": [
            {
              "filename": "spotify-url-infos-3.4.2.tgz",
              "hashes": {
                "sha1": "59e2af1a5d5275ce85aa4c1f95cb521b5788031b",
                "sha512_sri": "sha512-t89sz3rufIl+5mA2c6W3eYr/o5/9GIVwC7j+fC6efORoZz9tliapCe1qjecBKjef/FNggz5EqVc4BfsxavKwtQ=="
              }
            }
          ]
        }
      },
      "package": {
        "ecosystem": "npm",
        "name": "spotify-url-infos"
      },
      "versions": [
        "3.4.2"
      ]
    }
  ],
  "credits": [
    {
      "contact": [
        "inspector-research@amazon.com"
      ],
      "name": "Amazon Inspector",
      "type": "FINDER"
    }
  ],
  "database_specific": {
    "malicious-packages-origins": [
      {
        "id": "IN-MAL-2026-018738",
        "import_time": "2026-08-25T14:21:11.877745169Z",
        "modified_time": "2026-08-25T14:10:28Z",
        "sha256": "e72208a0a63e3b9eb2549151c6b0899d84e79df1a1058cd72e048c3a44592440",
        "source": "amazon-inspector",
        "versions": [
          "3.4.2"
        ]
      }
    ]
  },
  "details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (e72208a0a63e3b9eb2549151c6b0899d84e79df1a1058cd72e048c3a44592440)\nPackage is published under a name resembling the legitimate \u0027spotify-url-info\u0027 but its shipped code is an exfiltration tool. index.js invokes startBackupLoop() at top level, so simply require()\u0027ing or importing the module (no user action, no CLI invocation) begins an hourly loop that zips the entire current working directory \u2014 traversed via archiver.glob(\u0027**/*\u0027, {cwd: process.cwd(), dot: true}) so dotfiles such as.env,.git, and any credentials in the tree are included \u2014 and uploads the archive to a Telegram chat via telegram.sendDocument. The destination is hardcoded in src/config.js as bot token 8837512876:AAH... and chatId 7549282259; the interactive.env setup shipped in bin/setup.js is a decoy and its values are never read by the runtime path. The package\u0027s declared description (\u0027Automated server backup tool with Telegram delivery\u0027) conflicts with its published name (\u0027spotify-url-infos\u0027), the banner/log helpers are empty stubs, and every try/catch swallows errors, so the loop runs silently.\n",
  "id": "MAL-2026-14492",
  "modified": "2026-08-25T14:10:28Z",
  "published": "2026-08-25T14:10:28Z",
  "references": [
    {
      "type": "PACKAGE",
      "url": "https://www.npmjs.com/package/spotify-url-infos/v/3.4.2"
    }
  ],
  "schema_version": "1.7.4",
  "summary": "Malicious code in spotify-url-infos (npm)"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…