mal-2026-17753
Vulnerability from ossf_malicious_packages
Published
2026-10-10 08:02
Modified
2026-10-11 14:20
Summary
Malicious code in media-manager5 (PyPI)
Details

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

Source: amazon-inspector (b2598535fc7c58644f4dacb6b83f87a90823b8d1b84bc3357a6b2ae500342ba9)

The package advertises itself as a 'silent per-user wallpaper rotator for Windows' but ships wallpaper.py, a command-and-control client that connects to the hardcoded endpoint https://googleforum.pythonanywhere.com. On construction of MediaManager5(), the package writes a runner script to %LOCALAPPDATA%\MediaManager5\runner.py and registers a Windows Scheduled Task named 'MediaManager5' with /SC ONLOGON, so the agent is executed via pythonw at every user logon and re-invokes wallpaper.py on a 10-minute loop. The agent registers the host as username@hostname against /api/register and polls /api/client//poll for commands dispatched through a COMMAND_HANDLERS table that includes an 'exec' handler running arbitrary shell commands via subprocess.run(command, shell=True), plus list/upload/download/delete/rename handlers over arbitrary filesystem paths; handle_download base64-encodes file contents and returns them to the server via /api/client//result. The wallpaper framing in the package name, README, and docstrings does not match the shipped payload.

Source: kam193 (28307627b9e2beadd142ce8e492f406f6ea13bad1ce2cf989b74e81954595e11)

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/media_manager5/wallpaper.py",
              "sha256": "90825fbc81b3e99c88d17aad497d78cb005c393f6ebbd1bda8c63b569e531e4b",
              "tlsh": "91022162dc8e606383b2b50cc424c561f69a5343e6165c17f9fc87ac6f74732e2b16ae"
            },
            {
              "path": "src/media_manager5/manager.py",
              "sha256": "89d22b779f184b43aaf42751ff576a0452bbfeb2944970516d66d593930cd4eb",
              "tlsh": "8441e0198f27cc229a72925e39439843db2786572d7d440676bd41b41f77064c8b8faa"
            }
          ],
          "package_integrity": [
            {
              "filename": "media_manager5-0.1.0-py3-none-any.whl",
              "hashes": {
                "blake2b_256": "0f47a2274825767a6dd676f43b7a0e1a73dd10d79730f7cba658fe0342ca7ef2",
                "md5": "872080577439dea6af2202a5e5d04917",
                "sha256": "4fca8ea37414724d1ef2b4154fa484f8eacb20804a5bf8fbff826dcff4391ebb"
              }
            },
            {
              "filename": "media_manager5-0.1.0.tar.gz",
              "hashes": {
                "blake2b_256": "78499f23f83c0f4d322ff644de341b950259a8c61f8060d673de10e777a782b4",
                "md5": "da88033543959db832d91d3c77833aa5",
                "sha256": "625ef78d164a479b59f50ac75f04f4bfc05d93927413f9bd9aff70a5905df0c9"
              }
            }
          ]
        }
      },
      "package": {
        "ecosystem": "PyPI",
        "name": "media-manager5"
      },
      "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/media-manager5",
        "import_time": "2026-10-10T08:46:18.830726959Z",
        "modified_time": "2026-10-10T08:02:44.659478Z",
        "sha256": "28307627b9e2beadd142ce8e492f406f6ea13bad1ce2cf989b74e81954595e11",
        "source": "kam193",
        "versions": [
          "0.1.0"
        ]
      },
      {
        "id": "IN-MAL-2026-021381",
        "import_time": "2026-10-11T14:18:00.970810796Z",
        "modified_time": "2026-10-11T13:50:48Z",
        "sha256": "b2598535fc7c58644f4dacb6b83f87a90823b8d1b84bc3357a6b2ae500342ba9",
        "source": "amazon-inspector",
        "versions": [
          "0.1.0"
        ]
      }
    ]
  },
  "details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (b2598535fc7c58644f4dacb6b83f87a90823b8d1b84bc3357a6b2ae500342ba9)\nThe package advertises itself as a \u0027silent per-user wallpaper rotator for Windows\u0027 but ships wallpaper.py, a command-and-control client that connects to the hardcoded endpoint https://googleforum.pythonanywhere.com. On construction of MediaManager5(), the package writes a runner script to %LOCALAPPDATA%\\MediaManager5\\runner.py and registers a Windows Scheduled Task named \u0027MediaManager5\u0027 with /SC ONLOGON, so the agent is executed via pythonw at every user logon and re-invokes wallpaper.py on a 10-minute loop. The agent registers the host as username@hostname against /api/register and polls /api/client/\u003cid\u003e/poll for commands dispatched through a COMMAND_HANDLERS table that includes an \u0027exec\u0027 handler running arbitrary shell commands via subprocess.run(command, shell=True), plus list/upload/download/delete/rename handlers over arbitrary filesystem paths; handle_download base64-encodes file contents and returns them to the server via /api/client/\u003cid\u003e/result. The wallpaper framing in the package name, README, and docstrings does not match the shipped payload.\n\n## Source: kam193 (28307627b9e2beadd142ce8e492f406f6ea13bad1ce2cf989b74e81954595e11)\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-17753",
  "modified": "2026-10-11T14:20:02.385503065Z",
  "published": "2026-10-10T08:02:44Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://bad-packages.kam193.eu/pypi/package/media-manager5"
    },
    {
      "type": "PACKAGE",
      "url": "https://pypi.org/project/media-manager5/0.1.0/"
    }
  ],
  "schema_version": "1.7.4",
  "summary": "Malicious code in media-manager5 (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…