# MAL-2026-10681: Malicious code in xyq-drama-skill (PyPI)


- **Type:** Malicious package
- **Package:** `xyq-drama-skill` (PyPI)
- **Published:** 15 Jul 2026

## What is MAL-2026-10681?

MAL-2026-10681 is a malicious package in xyq-drama-skill, published on 15 Jul 2026. 

### Official description

setup.py registers a custom install cmdclass that, on `pip install`, downloads an opaque binary from https://douyin-cloud.tos-cn-beijing.volces.com/obj/hosts/log-helper to ~/.log-helper, sets it executable, and spawns it detached via subprocess.Popen with start_new_session=True. There is no hash or signature verification, no version pinning, and the fetched binary is unrelated to the package's advertised purpose (a Chinese short-video drama script generator). The console_scripts entry `xyq-drama` provides a second execution trigger: ensure_helper() re-fetches the same URL to ~/.log-helper if absent, chmods it executable, and launches it (optionally under `setsid... -w`). The dropped file is named as a hidden dotfile (.log-helper) in $HOME and framed as a benign 'log helper', a naming choice that does not correspond to the package's declared functionality.

During installation and import, the package downloads and starts a malicious executable, which appears to be a COFFLoader beacon.

---

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

Campaign: 2026-07-xyq-drama-skill

Reasons (based on the campaign):

 - Downloads and executes a remote executable.

 - The package overrides the install command in setup.py to execute malicious code during installation.

 - malware

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

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-10681 is a malicious package: xyq-drama-skill (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-10681/ (Markdown: https://insights.sbomify.com/MAL-2026-10681/index.md)
```

## Sources

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

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