-= Per source details. Do not edit below this line.=-
pydanticc is a typosquat of the popular 'pydantic' package. Its setup.py defines a custom setuptools install command whose body is stored as a base64 string literal and reconstituted at install time via base64.b64decode + compile + exec, concealing the payload from plain reading of setup.py. On Linux, the decoded hook downloads an opaque executable from https://github.com/totti2188/8gp1Q7iZD3h4VW/releases/download/v1.3A/something (a personal GitHub account unrelated to the package's stated purpose), writes it to /tmp/something, marks it executable, and launches it detached via subprocess.Popen with startnewsession=True. The shipped Python module (djangoo/main.py) contains only a trivial hello() print with no pydantic-related functionality, so the package's real effect on installation is arbitrary remote code execution on the installer's host. The unpinned personal-account release URL, base64/exec obfuscation of the URL and Popen call, detached background execution, name-squat of a top-100 package, and stub content together constitute a classic install-time dropper.
Package imitates name of a popula library. During installation, obfuscated code downloads a malicious executable and starts it. It then exfiltrates at least cryptocurrency wallet data, probably more.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-08-flasq
Reasons (based on the campaign):
typosquatting
The package overrides the install command in setup.py to execute malicious code during installation.
exfiltration-generic
Downloads and executes a remote executable.
obfuscation
exfiltration-crypto
{
"malicious-packages-origins": [
{
"id": "pypi/2026-08-flasq/pydanticc",
"import_time": "2026-08-07T07:35:19.075614837Z",
"sha256": "c16b176d1ba6ee3f4f1680d0678c9933e620f4de18bec7bc9af67978ed737527",
"modified_time": "2026-08-07T07:04:59.702408Z",
"source": "kam193",
"versions": [
"0.1.1",
"0.1.2",
"0.2.0",
"0.3.0"
]
},
{
"id": "pypi/2026-08-flasq/pydanticc",
"import_time": "2026-08-07T08:57:13.35342027Z",
"sha256": "faf0b5d83a6387044068dd0d4eb61cef977123164e4be406b16bf2c38ac4f9ed",
"modified_time": "2026-08-07T07:04:59.702408Z",
"source": "kam193",
"versions": [
"0.1.1",
"0.1.2",
"0.2.0",
"0.3.0"
]
},
{
"id": "IN-MAL-2026-016901",
"import_time": "2026-08-07T12:23:26.426157732Z",
"sha256": "0b849ee630b66e8839acdf0c7830372ba690b80f182434aea2816513ee2b35ad",
"versions": [
"0.3.0"
],
"source": "amazon-inspector",
"modified_time": "2026-08-07T12:15:07Z"
},
{
"id": "IN-MAL-2026-016905",
"import_time": "2026-08-07T12:23:26.612026649Z",
"sha256": "0bc3a091548db52bab3bf8556e95780b3041aa971b6353d7f31bdb71128915a1",
"modified_time": "2026-08-07T12:15:39Z",
"source": "amazon-inspector",
"versions": [
"0.1.2"
]
},
{
"id": "IN-MAL-2026-016900",
"import_time": "2026-08-07T12:23:26.397263297Z",
"sha256": "341e293bf68c074727878e98df5cad5aad9f711aca022d4e95b5e7723adf4a88",
"versions": [
"0.2.0"
],
"source": "amazon-inspector",
"modified_time": "2026-08-07T12:14:58Z"
},
{
"id": "IN-MAL-2026-016904",
"import_time": "2026-08-07T12:23:26.581077987Z",
"sha256": "924a5e8609b73977255f604d1e6f55179d72569ffb2698c8c54af1b258b36a90",
"versions": [
"0.1.1"
],
"source": "amazon-inspector",
"modified_time": "2026-08-07T12:15:30Z"
}
],
"iocs": {
"ips": [
"193.70.34.101"
],
"urls": [
"https://github.com/totti2188/8gp1Q7iZD3h4VW/releases/download/v1.3A/something"
]
}
}[
{
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code",
"cweId": "CWE-506"
},
{
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code",
"cweId": "CWE-506"
},
{
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code",
"cweId": "CWE-506"
},
{
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code",
"cweId": "CWE-506"
}
]
{
"evidence_files": [
{
"path": "setup.py",
"tlsh": "a621685f8e6111b47c18c7845553401b1767afa56c2074e4befe23642b8d29dca7f097",
"sha256": "f08f648a6d275f6e767723384c7628135b1a148a0837c60120be41d2f296bf39"
}
],
"package_integrity": [
{
"filename": "pydanticc-0.3.0.tar.gz",
"hashes": {
"sha256": "ad7b749fc925b55e2be3274216e3254927b493393e5e91881dbf614395f8d7c5",
"blake2b_256": "c0c4d63f38af89e094a1ba207e8308f5e67bd9d1e8ae2bacd6cc662e99fc61d3",
"md5": "989cd8bb5840cb70890827192d855cd2"
}
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/pydanticc/MAL-2026-13489.json"