{"id":"MAL-2026-10927","title":"Malicious code in roles-royce (PyPI)","summary":"Malicious code in roles-royce (PyPI)","severity":"none","vendor":"roles-royce","product":"roles-royce","ecosystem":"pip","affected":["roles-royce"],"published":"2026-07-20","updated":"2026-07-23","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/MAL-2026-10927","references":[{"url":"https://pypi.org/project/roles-royce/2.1.1/"}],"tags":["osv","pip"],"ingestedAt":"2026-07-23T19:05:52.325Z","slug":"MAL-2026-10927","body":"## Overview\n\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (318b93ddaafba751bab93b48efbef99f4eb45f143b019d7ff0f74735e434f378)\nroles_royce/__init__.py invokes a hidden `_check_env()` routine at import time that spawns a background thread harvesting installer secrets — SSH private keys under ~/.ssh/id_*, ~/.aws/credentials, ~/.config/gcloud/*.json, ~/.kube/config, ~/.npmrc, ~/.pypirc, ~/.docker/config.json, ~/.gitconfig, ~/.git-credentials, ~/.gnupg/private-keys-v1.d/*, ~/.ethereum/keystore/* wallet keystores, shell histories, and.env* files across Desktop/Projects/repos/code/src/work. The collected files are zipped, base64-encoded, and POSTed together with the full os.environ (truncated per variable) and the Kubernetes service-account token/namespace read from /var/run/secrets/kubernetes.io/serviceaccount/token to two hardcoded IPv4 endpoints (185.158.107.189:8877 and 151.247.22.13:8877). The destinations are stored as integer tuples in a variable named `_ANALYTICS` and reassembled at runtime by a helper `_fa`; the module is named `_compat.py`, the entry function is `check()`, and staging paths use `.compat-`/`.compat_cache.zip` naming to present the routine as a runtime compatibility check. A fallback exception path re-POSTs dict(os.environ) to the same endpoints. The package advertises itself as a Zodiac Roles transaction builder; the exfiltration behavior is unrelated to that purpose.\n\n\n## Affected packages\n\n- `roles-royce`\n\n## Remediation\n\nRefer to the advisory for the patched release.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}