Malicious code in media-manager5 (PyPI)
--- _-= 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 (cb983aa5b7a424ffd813440bb47cefb9d43ed193c38456dd8acb299aafa3cd56) 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
- Products
- media-manager5
- Affected versions
- 0.1.0
- Fixed versions
- Not specified
- CVEs
- Not specified
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 30 Oct 2026, 15:54 UTC · Revision 1
Source evidence
--- _-= 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 (cb983aa5b7a424ffd813440bb47cefb9d43ed193c38456dd8acb299aafa3cd56) 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
osv:MAL-2026-17753
media-manager5
Fixed versions: Not specified
Complete source record
{
"id": "97bc0fcda28b01ffb567d14c81d9018ae67203e5256dbdb1d5a17a9d429c18b4",
"url": "https://osv.dev/vulnerability/MAL-2026-17753",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Malicious code in media-manager5 (PyPI)",
"summary": "--- _-= 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 (cb983aa5b7a424ffd813440bb47cefb9d43ed193c38456dd8acb299aafa3cd56) 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 ",
"evidence": "osv:MAL-2026-17753",
"products": [
{
"name": {
"value": "media-manager5",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "0.1.0",
"evidence": "/affected/0/versions"
}
]
}
],
"severity": "unknown",
"structured": {
"id": "MAL-2026-17753",
"aliases": [
"MAL-2026-17753"
],
"affected": [
{
"package": {
"name": "media-manager5",
"purl": "pkg:pypi/media-manager5",
"ecosystem": "PyPI"
},
"versions": [
"0.1.0"
],
"database_specific": {
"cwes": [
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
}
],
"source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/media-manager5/MAL-2026-17753.json",
"indicators": {
"evidence_files": [
{
"path": "src/media_manager5/wallpaper.py",
"tlsh": "91022162dc8e606383b2b50cc424c561f69a5343e6165c17f9fc87ac6f74732e2b16ae",
"sha256": "90825fbc81b3e99c88d17aad497d78cb005c393f6ebbd1bda8c63b569e531e4b"
},
{
"path": "src/media_manager5/manager.py",
"tlsh": "8441e0198f27cc229a72925e39439843db2786572d7d440676bd41b41f77064c8b8faa",
"sha256": "89d22b779f184b43aaf42751ff576a0452bbfeb2944970516d66d593930cd4eb"
}
],
"package_integrity": [
{
"hashes": {
"md5": "872080577439dea6af2202a5e5d04917",
"sha256": "4fca8ea37414724d1ef2b4154fa484f8eacb20804a5bf8fbff826dcff4391ebb",
"blake2b_256": "0f47a2274825767a6dd676f43b7a0e1a73dd10d79730f7cba658fe0342ca7ef2"
},
"filename": "media_manager5-0.1.0-py3-none-any.whl"
},
{
"hashes": {
"md5": "da88033543959db832d91d3c77833aa5",
"sha256": "625ef78d164a479b59f50ac75f04f4bfc05d93927413f9bd9aff70a5905df0c9",
"blake2b_256": "78499f23f83c0f4d322ff644de341b950259a8c61f8060d673de10e777a782b4"
},
"filename": "media_manager5-0.1.0.tar.gz"
}
]
}
}
}
],
"modified": "2026-10-15T09:30:03.447639369Z",
"provider": "osv",
"references": [
"https://bad-packages.kam193.eu/pypi/package/media-manager5",
"https://pypi.org/project/media-manager5/0.1.0/"
],
"provider_metadata": {
"iocs": {
"urls": [
"https://raw.githubusercontent.com/anonrider404/pypl/9395c5802b11bc088925d7adf6e2f66b8b0709fd/readme.txt",
"https://raw.githubusercontent.com/anonrider404/pypl/refs/heads/main/readme.txt",
"https://github.com/anonrider404/pypl"
],
"domains": [
"googleforum.pythonanywhere.com"
]
},
"malicious-packages-origins": [
{
"id": "pypi/2026-10-agentaix/media-manager5",
"sha256": "28307627b9e2beadd142ce8e492f406f6ea13bad1ce2cf989b74e81954595e11",
"source": "kam193",
"versions": [
"0.1.0"
],
"import_time": "2026-10-10T08:46:18.830726959Z",
"modified_time": "2026-10-10T08:02:44.659478Z"
},
{
"id": "IN-MAL-2026-021381",
"sha256": "b2598535fc7c58644f4dacb6b83f87a90823b8d1b84bc3357a6b2ae500342ba9",
"source": "amazon-inspector",
"versions": [
"0.1.0"
],
"import_time": "2026-10-11T14:18:00.970810796Z",
"modified_time": "2026-10-11T13:50:48Z"
},
{
"id": "pypi/2026-10-agentaix/media-manager5",
"sha256": "cb983aa5b7a424ffd813440bb47cefb9d43ed193c38456dd8acb299aafa3cd56",
"source": "kam193",
"versions": [
"0.1.0"
],
"import_time": "2026-10-15T09:20:03.532932528Z",
"modified_time": "2026-10-10T08:02:44.659478Z"
}
]
}
},
"related_cves": [],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 326289,
"published_at": "2026-10-10T08:02:44+00:00"
}