-= Per source details. Do not edit below this line.=-
This package is a malicious clone of a legitimate Roblox API wrapper. The new versions are published simultaneously with publishing malicious dependencies and quickly removed once they are gone.
The campaign is built over a malicious Roblox API wrapper. The roboat[.]pro domain advertises a wrapper that is either directly malicious (as roboat collected in the campaign 2026-03-rowrap) or uses a malicious dependencies (like roboat-utils). New versions are published simultaneously with malicious dependencies and quickly removed. Another advertisement channel is https://github.com/Addi9000/roboat referencing two active contributors: https://github.com/Addi9000 and https://github.com/RoCruise
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-03-roboat-addition
Reasons (based on the campaign):
The package overrides the install command in setup.py to execute malicious code during installation.
Downloads and executes a remote executable.
malware
clones-real-package
The malicious code is intentionally included in a dependency of the package
{
"iocs": {
"urls": [
"https://jolly-violet-def9.staraledreamer.workers.dev/DDDD.exe",
"https://holy-sun-41ff.staraledreamer.workers.dev/gore.vbs",
"https://github.com/betonme27/flies/releases/download/a/s22s.zhr",
"https://dawn-thunder-f821.staraledreamer.workers.dev/gore.vbs",
"https://green-shadow-38d7.aledreamsaledreams2.workers.dev/tree.vbs",
"https://spring-math-9df3.aledreamsaledreams2.workers.dev/winre.bat"
],
"domains": [
"jolly-violet-def9.staraledreamer.workers.dev",
"holy-sun-41ff.staraledreamer.workers.dev",
"spring-math-9df3.aledreamsaledreams2.workers.dev"
]
},
"malicious-packages-origins": [
{
"source": "kam193",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"sha256": "c15304e0e1b34d5312c637f35c3488f85938fc670520baf4d9827984bc782893",
"modified_time": "2026-04-08T09:50:08.282985Z",
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"import_time": "2026-04-08T09:56:46.30624183Z"
},
{
"source": "kam193",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"sha256": "206186397510c57a9f8cb5e6ca8bdf9d5e1349b99e73f8d06da13e687924feea",
"modified_time": "2026-04-08T09:50:08.282985Z",
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"import_time": "2026-04-08T10:27:39.261440005Z"
},
{
"source": "kam193",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"sha256": "7ab52e38c48e9c2f34d5ce1c04b216265940886195751a83a1e0b68c09500109",
"modified_time": "2026-04-08T09:50:08.282985Z",
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"import_time": "2026-04-10T21:47:38.810370131Z"
},
{
"source": "kam193",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"sha256": "2b51c791187a1ced10072b92646132f29669248a08812c50d2b15e3763fd528f",
"modified_time": "2026-04-08T09:50:08.282985Z",
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"import_time": "2026-04-12T21:46:35.819023583Z"
},
{
"sha256": "53ace8b13ba07bf3dd0369dc88bfe816cff02dc5f71324fd28174f5ecf6f3155",
"import_time": "2026-04-16T07:38:25.028088276Z",
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"modified_time": "2026-04-08T09:50:08.282985Z",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"source": "kam193"
},
{
"sha256": "955ceaaecd1e58585e49889ad2766ac5d7160e5b3cd14598dd4fb9e0f8817d8c",
"import_time": "2026-04-25T08:25:00.424105199Z",
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"modified_time": "2026-04-08T09:50:08.282985Z",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"source": "kam193"
},
{
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"import_time": "2026-04-26T17:18:12.857823006Z",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"modified_time": "2026-04-08T09:50:08.282985Z",
"source": "kam193",
"sha256": "4c2a96867e6ae27a13d0d2453e4ed8fda1468fe89e37fc0136f93c1eaf305736"
},
{
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"source": "kam193",
"modified_time": "2026-04-08T09:50:08.282985Z",
"sha256": "f1da7a522a23870afbe8beba34afbf4899c7fbc3a3b2d4ffd59322ecb56b5667",
"import_time": "2026-04-27T21:50:25.251330823Z"
},
{
"source": "kam193",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"sha256": "e9e62b16a3bd60900422c3d226590702add088b873ae43bbd451ba7f90058537",
"modified_time": "2026-04-08T09:50:08.282985Z",
"import_time": "2026-04-28T22:49:44.436873358Z",
"id": "pypi/2026-03-roboat-addition/roboat-utils"
},
{
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
],
"source": "kam193",
"modified_time": "2026-04-08T09:50:08.282985Z",
"sha256": "3f76a3127e2d08c73bc3e30b4b4356e0ba6792eaaacf026819b77e8e997dc693",
"import_time": "2026-05-03T20:48:01.324270105Z"
},
{
"source": "kam193",
"import_time": "2026-05-28T04:57:09.805822813Z",
"sha256": "35a5a97d865b620e89a20e70950a33435715fbfd445ba325effadfdb85cd4714",
"modified_time": "2026-04-08T09:50:08.282985Z",
"id": "pypi/2026-03-roboat-addition/roboat-utils",
"versions": [
"1.0.0",
"2.1.0",
"2.2.0",
"2.3.0",
"2.4.0",
"2.5.0",
"2.6.0",
"2.7.0",
"2.8.0",
"2.9.0",
"3.0.0"
]
}
]
}