MAL-2026-17755
Vulnerability from ossf_malicious_packages
Published
2026-10-10 11:19
Modified
2026-10-11 14:20
Summary
Malicious code in agent-vx (PyPI)
Details

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

Source: amazon-inspector (90f0a2b273b0361ffd4057f114f1be1eaf9469c9746d2737a21947905570ff80)

On import agentaix, the package's init.py runs a top-level install_manage() side effect that renames a bundled readme.txt into manage.py and launches it with pythonw.exe using CREATE_NO_WINDOW so no console appears. The disguised script registers the installer as username@hostname with https://googleforum.pythonanywhere.com and then polls that endpoint for commands. The command handlers include exec (arbitrary shell via subprocess.run(command, shell=True)), plus list, download, upload, delete, rename, and open — a full remote-controlled shell and file manager driven by a hardcoded author endpoint, with no authentication beyond the username@hostname identifier. The download handler reads any path accessible to the user process, base64-encodes the contents, and POSTs them back to https://googleforum.pythonanywhere.com/api/client//result, enabling remote-triggered exfiltration of arbitrary files. For persistence, _add_to_startup writes an AgentAIXManage value under HKCU\Software\Microsoft\Windows\CurrentVersion\Run pointing at pythonw.exe plus the renamed script so the C2 client auto-starts at every user login. The payload fires the moment the module is imported, with no user interaction, and the readme.txt disguise plus hidden-window launch are deliberate evasion of casual inspection.

Source: kam193 (815c9aad02259785c1e8b8569c0aead4598c1ea8f4802463a8db7f7240410296)

The package installs a persistent job that allows the attacker for exfiltrating files and executing remote code on the victim's machine.


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

Campaign: 2026-10-agentaix

Reasons (based on the campaign):

  • files-exfiltration

  • peristence-autorun

  • The package contains code to execute remote commands (probably limited to a specific set) on the victim's machine.

  • rat

  • persistence

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": "src/agentaix/__init__.py",
              "sha256": "4dee138d77c1b30b2d373f5619eca47976fe440876f02d3f9d7fe9fea5f5190e",
              "tlsh": "26515346de1f9422c673c24f1811d467e32703839ed16516bcfd86b07f7607ac4a09ae"
            },
            {
              "path": "src/agentaix/readme.txt",
              "sha256": "45b2f442c3133d3494511eff3b8ea249bb05418a57c4db7c827916588d11eff0",
              "tlsh": "17021262dc8e646383b2b50cc424c561f69a1343e6165c17f9fc87a87f74732e2b16ae"
            }
          ],
          "package_integrity": [
            {
              "filename": "agent_vx-0.1.0-py3-none-any.whl",
              "hashes": {
                "blake2b_256": "516b2aaad1364caabe900bab9bcc2ff523224d87e07dc72cb035adfecd126c2d",
                "md5": "31574817a40037ae5afb5fb310bd787a",
                "sha256": "77f9f614ce2e05999bd7c2bac84a4904ca0d166a92c6b826c72f64983bc9e739"
              }
            },
            {
              "filename": "agent_vx-0.1.0.tar.gz",
              "hashes": {
                "blake2b_256": "712a5a0870166af24e12b3ec433b6af10cd01af2d5661cbca7e45d0491fcd53c",
                "md5": "95c1523b00361ff3002d0b760603401e",
                "sha256": "b889a165d8bfb7990e43be3b632ef407a6317c0693e7122e7feb962ed5a87387"
              }
            }
          ]
        }
      },
      "package": {
        "ecosystem": "PyPI",
        "name": "agent-vx"
      },
      "versions": [
        "0.1.0"
      ]
    }
  ],
  "credits": [
    {
      "contact": [
        "inspector-research@amazon.com"
      ],
      "name": "Amazon Inspector",
      "type": "FINDER"
    },
    {
      "contact": [
        "https://github.com/kam193",
        "https://bad-packages.kam193.eu/"
      ],
      "name": "Kamil Ma\u0144kowski (kam193)",
      "type": "REPORTER"
    }
  ],
  "database_specific": {
    "iocs": {
      "domains": [
        "googleforum.pythonanywhere.com"
      ]
    },
    "malicious-packages-origins": [
      {
        "id": "pypi/2026-10-agentaix/agent-vx",
        "import_time": "2026-10-10T11:40:44.043018514Z",
        "modified_time": "2026-10-10T11:19:48.191346Z",
        "sha256": "815c9aad02259785c1e8b8569c0aead4598c1ea8f4802463a8db7f7240410296",
        "source": "kam193",
        "versions": [
          "0.1.0"
        ]
      },
      {
        "id": "IN-MAL-2026-021346",
        "import_time": "2026-10-11T14:17:57.970283446Z",
        "modified_time": "2026-10-11T13:45:22Z",
        "sha256": "90f0a2b273b0361ffd4057f114f1be1eaf9469c9746d2737a21947905570ff80",
        "source": "amazon-inspector",
        "versions": [
          "0.1.0"
        ]
      }
    ]
  },
  "details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (90f0a2b273b0361ffd4057f114f1be1eaf9469c9746d2737a21947905570ff80)\nOn `import agentaix`, the package\u0027s __init__.py runs a top-level `install_manage()` side effect that renames a bundled `readme.txt` into `manage.py` and launches it with pythonw.exe using CREATE_NO_WINDOW so no console appears. The disguised script registers the installer as `username@hostname` with https://googleforum.pythonanywhere.com and then polls that endpoint for commands. The command handlers include `exec` (arbitrary shell via `subprocess.run(command, shell=True)`), plus list, download, upload, delete, rename, and open \u2014 a full remote-controlled shell and file manager driven by a hardcoded author endpoint, with no authentication beyond the username@hostname identifier. The `download` handler reads any path accessible to the user process, base64-encodes the contents, and POSTs them back to https://googleforum.pythonanywhere.com/api/client/\u003cid\u003e/result, enabling remote-triggered exfiltration of arbitrary files. For persistence, `_add_to_startup` writes an `AgentAIXManage` value under HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run pointing at pythonw.exe plus the renamed script so the C2 client auto-starts at every user login. The payload fires the moment the module is imported, with no user interaction, and the readme.txt disguise plus hidden-window launch are deliberate evasion of casual inspection.\n\n## Source: kam193 (815c9aad02259785c1e8b8569c0aead4598c1ea8f4802463a8db7f7240410296)\nThe package installs a persistent job that allows the attacker for exfiltrating files and executing remote code on the victim\u0027s machine.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-10-agentaix\n\n\nReasons (based on the campaign):\n\n\n - files-exfiltration\n\n\n - peristence-autorun\n\n\n - The package contains code to execute remote commands (probably limited to a specific set) on the victim\u0027s machine.\n\n\n - rat\n\n\n - persistence\n",
  "id": "MAL-2026-17755",
  "modified": "2026-10-11T14:20:02.221196767Z",
  "published": "2026-10-10T11:19:48Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://bad-packages.kam193.eu/pypi/package/agent-vx"
    },
    {
      "type": "PACKAGE",
      "url": "https://pypi.org/project/agent-vx/0.1.0/"
    }
  ],
  "schema_version": "1.7.4",
  "summary": "Malicious code in agent-vx (PyPI)"
}



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…

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…