# MAL-2026-17286: Malicious code in queeuees (PyPI)


- **Type:** Malicious package
- **Package:** `queeuees` (PyPI)
- **Published:** 29 Sep 2026

## What is MAL-2026-17286?

MAL-2026-17286 is a malicious package in queeuees, published on 29 Sep 2026. 

### Official description

Queeuees 0.0.1 ships two top-level packages, Queeuees and Queues, with byte-identical __init__.py files. Each __init__.py assembles a byte blob from concatenated hex/tuple/rotated-byte literals and decodes it through bit-rotation, XOR keystream, seeded Fisher-Yates, inverse S-box, and LCG XOR stages. The result is passed to builtins.exec at import time via getattr(__import__('builtins'), 'exec')(payload), where the strings 'builtins' and 'exec' are hidden as byte arrays XORed with 75. Execution is triggered by a descriptor __set_name__ hook that fires when the containing class is defined during module import, so `import Queeuees` or `import Queues` runs the decoded code. Identifiers use homoglyph-style names (_0I1IIO, _lIII1, _OI110l, _01I0) and cover-story labels ('Module signature database', 'Certificate fingerprint lookup table'), while the published metadata advertises the package as 'a very basic calculator'. The Queeuees name resembles the common word 'Queues' with duplicated vowels, and the identical payload under both names broadens the typo-catchment surface for the same import-time dropper.

Obfuscated code iterates over files in the system and adds a comment to every .py file found.

---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.

Campaign: 2026-09-queeuees

Reasons (based on the campaign):

 - obfuscation

 - modify-system-without-consent

## What should I do about MAL-2026-17286?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

## Fix prompt for AI coding agents

```text
MAL-2026-17286 is a malicious package: queeuees (PyPI). Every version was published to cause harm.

Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.

Reference: https://insights.sbomify.com/MAL-2026-17286/ (Markdown: https://insights.sbomify.com/MAL-2026-17286/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/MAL-2026-17286

---
From sbomify Insights: https://insights.sbomify.com/MAL-2026-17286/
Summaries are generated and may contain mistakes; the official description above is the record.
