MAL-2026-16281
Vulnerability from ossf_malicious_packages
Published
2026-09-18 04:29
Modified
2026-09-18 04:29
Summary
Malicious code in @sanzoffc/baileys (npm)
Details

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

Source: amazon-inspector (4393cd98419ed1fce683c0fde038bce830873769d85d69e64674df61f68502bc)

This package is a fork of the Baileys WhatsApp library that adds covert remote-controlled behavior driven by the installer's authenticated WhatsApp session. In lib/Socket/socket.js, socketConnect() (invoked from validateConnection on every WebSocket open) reconstructs a URL from a String.fromCharCode char-code array that resolves to https://raw.githubusercontent.com/skyzopedia/NewsletterID/refs/heads/main/VIP_Push.json, fetches that JSON list, and iterates it to issue WhatsApp GraphQL mutations with query_id 7871414976211147 (newsletter subscribe/follow) for each id in the remote-supplied list. The list is hosted on a mutable personal-GitHub branch controlled by a third party, so whoever edits that file determines which actions the installer's WhatsApp account performs. A second helper (generateMessageV) base64+XOR-decodes (key 23) a hardcoded '@newsletter' JID and pairs it with the same query_id 7871414976211147, then schedules the same subscription action 40 seconds after invocation - layered string obfuscation of a fixed destination JID that has no legitimate purpose in a WhatsApp protocol library. The behavior is not documented, not caller-configurable, and the URL and JID are deliberately obfuscated to evade string scanners. The manifest additionally declares '@whiskeysockets/eslint-config' as an unpinned github: source and pins most other dependencies to '*', widening the resolution trust boundary.

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": "lib/Socket/socket.js",
              "sha256": "ea57a6770cf2c246e27a5ffe85ffeb496624f9b1582868d5dff184fd6369a394",
              "tlsh": "ffd2b41b46f3053aab777476562b6021333580073a48dca57bac8254af8e778e6e77cc"
            },
            {
              "path": "package.json",
              "sha256": "c133372660768c7345c90deac3371900a7ee0879d56082fd6f6f40fd7ea605f7",
              "tlsh": "f541ee21cfae4d3314da2585e9a5900265a809f3be487c2c7394967c4f4e25f27be8ed"
            }
          ],
          "package_integrity": [
            {
              "filename": "baileys-3.0.4.tgz",
              "hashes": {
                "sha1": "b1b8fe6ee997780989e23290233629da98dca16d",
                "sha512_sri": "sha512-prWbJsDnAnMsugsWjA9VR0Kx7JQ5y0y87ze+VO1sGwll/kBIsTvkQI7lMiq6/0SWDs5GJAIr77A8BHCg72G5JQ=="
              }
            }
          ]
        }
      },
      "package": {
        "ecosystem": "npm",
        "name": "@sanzoffc/baileys"
      },
      "versions": [
        "3.0.4"
      ]
    }
  ],
  "credits": [
    {
      "contact": [
        "inspector-research@amazon.com"
      ],
      "name": "Amazon Inspector",
      "type": "FINDER"
    }
  ],
  "database_specific": {
    "malicious-packages-origins": [
      {
        "id": "IN-MAL-2026-020178",
        "import_time": "2026-09-18T04:43:03.710609626Z",
        "modified_time": "2026-09-18T04:29:33Z",
        "sha256": "4393cd98419ed1fce683c0fde038bce830873769d85d69e64674df61f68502bc",
        "source": "amazon-inspector",
        "versions": [
          "3.0.4"
        ]
      }
    ]
  },
  "details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (4393cd98419ed1fce683c0fde038bce830873769d85d69e64674df61f68502bc)\nThis package is a fork of the Baileys WhatsApp library that adds covert remote-controlled behavior driven by the installer\u0027s authenticated WhatsApp session. In lib/Socket/socket.js, socketConnect() (invoked from validateConnection on every WebSocket open) reconstructs a URL from a String.fromCharCode char-code array that resolves to https://raw.githubusercontent.com/skyzopedia/NewsletterID/refs/heads/main/VIP_Push.json, fetches that JSON list, and iterates it to issue WhatsApp GraphQL mutations with query_id 7871414976211147 (newsletter subscribe/follow) for each id in the remote-supplied list. The list is hosted on a mutable personal-GitHub branch controlled by a third party, so whoever edits that file determines which actions the installer\u0027s WhatsApp account performs. A second helper (generateMessageV) base64+XOR-decodes (key 23) a hardcoded \u0027@newsletter\u0027 JID and pairs it with the same query_id 7871414976211147, then schedules the same subscription action 40 seconds after invocation - layered string obfuscation of a fixed destination JID that has no legitimate purpose in a WhatsApp protocol library. The behavior is not documented, not caller-configurable, and the URL and JID are deliberately obfuscated to evade string scanners. The manifest additionally declares \u0027@whiskeysockets/eslint-config\u0027 as an unpinned github: source and pins most other dependencies to \u0027*\u0027, widening the resolution trust boundary.\n",
  "id": "MAL-2026-16281",
  "modified": "2026-09-18T04:29:33Z",
  "published": "2026-09-18T04:29:33Z",
  "references": [
    {
      "type": "PACKAGE",
      "url": "https://www.npmjs.com/package/@sanzoffc/baileys/v/3.0.4"
    }
  ],
  "schema_version": "1.7.4",
  "summary": "Malicious code in @sanzoffc/baileys (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…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…