{"schema_version":"1.7.3","id":"MAL-2026-869","published":"2026-02-12T08:10:35Z","modified":"2026-02-19T22:58:21.520698Z","summary":"Malicious code in ritch (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (bc0d5c6c0c3175de2d5def02fe422574cfee5f7fe3a88f894de7122aa9dcf588)\nPackage is a typosquatting or dependency confusion attempt with a low-harm local-only action, like leaving a flag file.\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-local-typosquatting\n\n\nReasons (based on the campaign):\n\n\n - dependency-confusion\n\n\n - The package overrides the install command in setup.py to execute malicious code during installation.\n\n\n - typosquatting\n\n## Source: ossf-package-analysis (53836e778fae351105bebc4ec62937db1766d236b1ab050c142e8a57d863c7ea)\nThe OpenSSF Package Analysis project identified 'ritch' @ 1.0.0 (pypi) as malicious.\n\nIt is considered malicious because:\n\n- The package executes one or more commands associated with malicious behavior.\n","affected":[{"package":{"name":"ritch","ecosystem":"PyPI","purl":"pkg:pypi/ritch"},"versions":["1.0.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/ritch/MAL-2026-869.json"}}],"references":[{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/ritch"}],"database_specific":{"malicious-packages-origins":[{"id":"pypi/GENERIC-local-typosquatting/ritch","import_time":"2026-02-12T09:22:04.910454194Z","modified_time":"2026-02-12T08:45:10.233987Z","sha256":"bc0d5c6c0c3175de2d5def02fe422574cfee5f7fe3a88f894de7122aa9dcf588","source":"kam193","versions":["1.0.0"]},{"import_time":"2026-02-19T22:45:34.84688713Z","modified_time":"2026-02-12T08:10:35Z","sha256":"53836e778fae351105bebc4ec62937db1766d236b1ab050c142e8a57d863c7ea","source":"ossf-package-analysis","versions":["1.0.0"]}]},"credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"},{"name":"OpenSSF: Package Analysis","contact":["https://github.com/ossf/package-analysis","https://openssf.slack.com/channels/package_analysis"],"type":"FINDER"}]}