mal-2026-2819
Vulnerability from ossf_malicious_packages
Published
2026-04-16 17:48
Modified
2026-04-16 22:20
Summary
Malicious code in pynosist (PyPI)
Details

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

Source: kam193 (ef7a4db1443361fe93b268c7ad8f38c5c290d5334162b57c2b534c97acbc2b5d)

The campaign is built from a benign-like package (e.g. genosys) and the malicious dependency (e.g. pynosist). The dependency uses a PTH file to trigger malicious action upon Python start. First, it ensures persistency e.g., through the autostart registry key. Then, based on the encrypted config, an exfiltration demon is started. It registeres the instance in the C2 server and starts searching the file system looking for files matching given filename patterns and then monitoring changes. Discovered files are exfiltrated to hardcoded remote target. In pynosist, the embeded configuration looks for *pemasukan*,*pengeluaran* and during analysis further updates from C2 changed patterns to "*privatekey*", "*privatekeys*", "*phrase*", "*private_key*", "*private-key*", "*airdrop*", "*private_keys*". The communication with C2 is secured by an embedded certificate.

The PyPI packages are used as dependencies in newly-created crypto-related repositories on GitHub.


Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.

Campaign: 2026-04-genosys

Reasons (based on the campaign):

  • files-exfiltration

  • peristence-autorun

  • obfuscation

  • The malicious code is intentionally included in a dependency of the package

  • exfiltration-credentials

  • persistence

  • crypto-related

Credits

{
  "affected": [
    {
      "package": {
        "ecosystem": "PyPI",
        "name": "pynosist"
      },
      "versions": [
        "0.1.0",
        "0.1.1",
        "0.1.2"
      ]
    }
  ],
  "credits": [
    {
      "contact": [
        "https://github.com/kam193",
        "https://bad-packages.kam193.eu/"
      ],
      "name": "Kamil Ma\u0144kowski (kam193)",
      "type": "REPORTER"
    }
  ],
  "database_specific": {
    "iocs": {
      "ips": [
        "161.97.81.147"
      ],
      "urls": [
        "https://161.97.81.147:8080"
      ]
    },
    "malicious-packages-origins": [
      {
        "id": "pypi/2026-04-genosys/pynosist",
        "import_time": "2026-04-16T18:31:14.406019833Z",
        "modified_time": "2026-04-16T17:48:29.443005Z",
        "sha256": "22099e06b775b693ee968f0c24992f9b3e4a07c5111dca77b8eacb80fa848570",
        "source": "kam193",
        "versions": [
          "0.1.0",
          "0.1.1",
          "0.1.2"
        ]
      },
      {
        "id": "pypi/2026-04-genosys/pynosist",
        "import_time": "2026-04-16T18:57:15.738660209Z",
        "modified_time": "2026-04-16T17:48:29.443005Z",
        "sha256": "e04256eb1c50315d6a1880695d0f2dad1cbe76ab0d7d85a300d78081bbe87ceb",
        "source": "kam193",
        "versions": [
          "0.1.0",
          "0.1.1",
          "0.1.2"
        ]
      },
      {
        "id": "pypi/2026-04-genosys/pynosist",
        "import_time": "2026-04-16T21:48:05.655980246Z",
        "modified_time": "2026-04-16T17:48:29.443005Z",
        "sha256": "faa7a26abfc86abcff2d4f0dc03bc01e874812c755e498ba8c5de57cb97049ba",
        "source": "kam193",
        "versions": [
          "0.1.0",
          "0.1.1",
          "0.1.2"
        ]
      },
      {
        "id": "pypi/2026-04-genosys/pynosist",
        "import_time": "2026-04-16T22:18:51.314320753Z",
        "modified_time": "2026-04-16T17:48:29.443005Z",
        "sha256": "ef7a4db1443361fe93b268c7ad8f38c5c290d5334162b57c2b534c97acbc2b5d",
        "source": "kam193",
        "versions": [
          "0.1.0",
          "0.1.1",
          "0.1.2"
        ]
      }
    ]
  },
  "details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (ef7a4db1443361fe93b268c7ad8f38c5c290d5334162b57c2b534c97acbc2b5d)\nThe campaign is built from a benign-like package (e.g. genosys) and the malicious dependency (e.g. pynosist). The dependency uses a PTH file to trigger malicious action upon Python start. First, it ensures persistency e.g., through the autostart registry key. Then, based on the encrypted config, an exfiltration demon is started. It registeres the instance in the C2 server and starts searching the file system looking for files matching given filename patterns and then monitoring changes. Discovered files are exfiltrated to hardcoded remote target. In pynosist, the embeded configuration looks for `*pemasukan*,*pengeluaran*` and during analysis further updates from C2 changed patterns to `\"*privatekey*\", \"*privatekeys*\",  \"*phrase*\", \"*private_key*\", \"*private-key*\", \"*airdrop*\",  \"*private_keys*\"`.  The communication with C2 is secured by an embedded certificate.\n\nThe PyPI packages are used as dependencies in newly-created crypto-related repositories on GitHub.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-04-genosys\n\n\nReasons (based on the campaign):\n\n\n - files-exfiltration\n\n\n - peristence-autorun\n\n\n - obfuscation\n\n\n - The malicious code is intentionally included in a dependency of the package\n\n\n - exfiltration-credentials\n\n\n - persistence\n\n\n - crypto-related\n",
  "id": "MAL-2026-2819",
  "modified": "2026-04-16T22:20:32Z",
  "published": "2026-04-16T17:48:29Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://bad-packages.kam193.eu/pypi/package/pynosist"
    },
    {
      "type": "WEB",
      "url": "https://github.com/genoshide/polymarket-arbitrage-trading-bot/blob/adfcde4ac6da19084e0714af3acd3e93cd46b5bc/requirements.txt#L20"
    },
    {
      "type": "WEB",
      "url": "https://github.com/genoshide/wallet-mcp/blob/0fad37d8d1bd6520be576128ebc9009a6b5903f0/pyproject.toml#L23"
    },
    {
      "type": "WEB",
      "url": "https://github.com/genoshide/opensea-auto-mint-bot/blob/27bc619b4d3beffa214f3e034b1b00b0487cf947/requirements.txt#L3"
    },
    {
      "type": "WEB",
      "url": "https://github.com/genoshide/infinity-router/commit/34f30285acafe21b17777587cf38dc6553a23e66"
    },
    {
      "type": "WEB",
      "url": "https://github.com/genoshide/solana-account-closer-bot/commit/73750693ec625298be478ce820ef82c844e47c89"
    }
  ],
  "schema_version": "1.7.4",
  "summary": "Malicious code in pynosist (PyPI)"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

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…