MAL-2026-13489Malicious code in pydanticc (PyPI)
| 版本 | 状态 | 大小 | SHA-256 | 获取方式 |
|---|---|---|---|---|
0.1.1 | unavailable | — | — | — |
0.1.2 | unavailable | — | — | — |
0.2.0 | unavailable | — | — | — |
0.3.0 | unavailable | — | — | — |
| Ecosystem | Package | Version |
|---|---|---|
| PyPI | pydanticc | 0.1.1 |
| PyPI | pydanticc | 0.1.2 |
| PyPI | pydanticc | 0.2.0 |
| PyPI | pydanticc | 0.3.0 |
{"schema_version":"1.7.4","id":"MAL-2026-13489","published":"2026-08-07T07:04:59Z","modified":"2026-08-07T12:25:23.197546158Z","summary":"Malicious code in pydanticc (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (0bc3a091548db52bab3bf8556e95780b3041aa971b6353d7f31bdb71128915a1)\npydanticc 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 start_new_session=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.\n\n## Source: kam193 (c16b176d1ba6ee3f4f1680d0678c9933e620f4de18bec7bc9af67978ed737527)\nPackage 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.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-08-flasq\n\n\nReasons (based on the campaign):\n\n\n - typosquatting\n\n\n - The package overrides the install command in setup.py to execute malicious code during installation.\n\n\n - exfiltration-generic\n\n\n - Downloads and executes a remote executable.\n\n\n - obfuscation\n\n\n - exfiltration-crypto\n","affected":[{"package":{"name":"pydanticc","ecosystem":"PyPI"},"versions":["0.1.1","0.1.2","0.2.0","0.3.0"],"database_specific":{"cwes":[{"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","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"setup.py","sha256":"f08f648a6d275f6e767723384c7628135b1a148a0837c60120be41d2f296bf39","tlsh":"a621685f8e6111b47c18c7845553401b1767afa56c2074e4befe23642b8d29dca7f097"}],"package_integrity":[{"filename":"pydanticc-0.3.0.tar.gz","hashes":{"blake2b_256":"c0c4d63f38af89e094a1ba207e8308f5e67bd9d1e8ae2bacd6cc662e99fc61d3","md5":"989cd8bb5840cb70890827192d855cd2","sha256":"ad7b749fc925b55e2be3274216e3254927b493393e5e91881dbf614395f8d7c5"}}]}}}],"references":[{"type":"EVIDENCE","url":"https://www.virustotal.com/gui/file/425f5336182e359211b5d751786d2ce1d31a673ea9c82107358a888803742649/detection"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/pydanticc"},{"type":"EVIDENCE","url":"https://tria.ge/260807-fkycrazzg1/behavioral1"},{"type":"PACKAGE","url":"https://pypi.org/project/pydanticc/0.3.0/"},{"type":"PACKAGE","url":"https://pypi.org/project/pydanticc/0.1.2/"},{"type":"PACKAGE","url":"https://pypi.org/project/pydanticc/0.2.0/"},{"type":"PACKAGE","url":"https://pypi.org/project/pydanticc/0.1.1/"}],"database_specific":{"iocs":{"ips":["193.70.34.101"],"urls":["https://github.com/totti2188/8gp1Q7iZD3h4VW/releases/download/v1.3A/something"]},"malicious-packages-origins":[{"id":"pypi/2026-08-flasq/pydanticc","import_time":"2026-08-07T07:35:19.075614837Z","modified_time":"2026-08-07T07:04:59.702408Z","sha256":"c16b176d1ba6ee3f4f1680d0678c9933e620f4de18bec7bc9af67978ed737527","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","modified_time":"2026-08-07T07:04:59.702408Z","sha256":"faf0b5d83a6387044068dd0d4eb61cef977123164e4be406b16bf2c38ac4f9ed","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","modified_time":"2026-08-07T12:15:07Z","sha256":"0b849ee630b66e8839acdf0c7830372ba690b80f182434aea2816513ee2b35ad","source":"amazon-inspector","versions":["0.3.0"]},{"id":"IN-MAL-2026-016905","import_time":"2026-08-07T12:23:26.612026649Z","modified_time":"2026-08-07T12:15:39Z","sha256":"0bc3a091548db52bab3bf8556e95780b3041aa971b6353d7f31bdb71128915a1","source":"amazon-inspector","versions":["0.1.2"]},{"id":"IN-MAL-2026-016900","import_time":"2026-08-07T12:23:26.397263297Z","modified_time":"2026-08-07T12:14:58Z","sha256":"341e293bf68c074727878e98df5cad5aad9f711aca022d4e95b5e7723adf4a88","source":"amazon-inspector","versions":["0.2.0"]},{"id":"IN-MAL-2026-016904","import_time":"2026-08-07T12:23:26.581077987Z","modified_time":"2026-08-07T12:15:30Z","sha256":"924a5e8609b73977255f604d1e6f55179d72569ffb2698c8c54af1b258b36a90","source":"amazon-inspector","versions":["0.1.1"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}数据来源:OpenSSF Malicious Packages · Apache-2.0