{"id":"MAL-2025-2943","summary":"Malicious code in canvas-crawler (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (e26aa849df7710714fbcef97638e99ec2f03a138b1e27c78ad0bb2caff64d5e1)\nInstalling the package or importing the module exfiltrates basic information about the host, and the package has no other purpose.\n\n\n---\n\nCategory: PROBABLY_PENTEST - Packages looking like typical pentest packages, but also anything that looks like testing, exploring pre-prepared kits, research & co, with clearly low-harm possibilities.\n\n\nCampaign: GENERIC-standard-pypi-install-pentest\n\n\nReasons (based on the campaign):\n\n\n - The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.\n\n\n - The package overrides the install command in setup.py to execute malicious code during installation.\n","modified":"2026-03-19T12:51:36.754470Z","published":"2024-07-26T16:53:30Z","database_specific":{"malicious-packages-origins":[{"source":"reversing-labs","modified_time":"2025-03-28T13:05:24Z","id":"RLMA-2025-01941","sha256":"c5b99cbc1e7a1473d7e6c905c0a9d113a2cd4529d5a90fa0debc679154c952f7","import_time":"2025-03-31T07:07:04.818952765Z","versions":["0.1"]},{"source":"kam193","modified_time":"2024-07-26T16:53:30Z","id":"pypi/GENERIC-standard-pypi-install-pentest/canvas-crawler","sha256":"41c83dd2ff5980165d0259fbc26b0b0d3d0a02d9e5041ca962273e4cca43537e","import_time":"2025-12-02T22:30:55.935214291Z","ranges":[{"events":[{"introduced":"0"}],"type":"ECOSYSTEM"}]},{"source":"kam193","modified_time":"2024-07-26T16:53:30Z","id":"pypi/GENERIC-standard-pypi-install-pentest/canvas-crawler","sha256":"e26aa849df7710714fbcef97638e99ec2f03a138b1e27c78ad0bb2caff64d5e1","import_time":"2025-12-02T23:07:19.124485665Z","ranges":[{"events":[{"introduced":"0"}],"type":"ECOSYSTEM"}]},{"source":"kam193","modified_time":"2024-07-26T16:53:30Z","id":"pypi/GENERIC-standard-pypi-install-pentest/canvas-crawler","sha256":"0cc0eaf8ba06a81e4c4af1ea1fb736306b558888f7d132f6d54de65a6d0e3917","import_time":"2025-12-10T21:38:58.259532846Z","versions":["0.1"]},{"source":"reversing-labs","modified_time":"2026-03-18T12:12:15Z","id":"RLUA-2026-00178","sha256":"2451b0eae84085328bfbbef2ffab95b0f9be136f79c632006753200337cf2217","import_time":"2026-03-19T12:19:32.460683501Z"}]},"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/canvas-crawler"}],"affected":[{"package":{"name":"canvas-crawler","ecosystem":"PyPI","purl":"pkg:pypi/canvas-crawler"},"versions":["0.1"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/canvas-crawler/MAL-2025-2943.json"}}],"schema_version":"1.7.5","credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"]},{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"ANALYST"},{"name":"ReversingLabs","contact":["https://www.reversinglabs.com"],"type":"FINDER"}]}