MAL-2026-4758 Malicious code in nebulix-ai (PyPI)
Malicious package
Published
MAL-2026-4758 is a malicious package: nebulix-ai (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-4758/ (Markdown: https://insights.sbomify.com/MAL-2026-4758/index.md)
- Package
- nebulix-ai
- Registry
- PyPI
What is MAL-2026-4758?
MAL-2026-4758 is a malicious package in nebulix-ai, published on 19 May 2026.
Official description
The package's documented
NebulixEngine.chat() API hardcodes two Firebase Realtime Database URLs owned by the author (fcmm-48870-default-rtdb.firebaseio.com and tappu-76693-default-rtdb.firebaseio.com) as the destination for caller-supplied data. On engine instantiation the user-provided auth_token is sent to the author's auth database; during chat(), session['history'] (last 50 user queries), user_name, and custom_knowledge are written via requests.put to the author's database keyed by the user's token (nebulix/engine.py lines 33-38 and 472). Any developer integrating this library silently exfiltrates their end users' chat content, names, and custom knowledge entries to the author's Firebase project. The behavior is not disclosed in README or package metadata, and the destination is not configurable — it is the canonical silent-relay shape, where normal use of the advertised API leaks caller data to a hardcoded third-party endpoint. Two embedded Firebase Web API keys are public-by-design identifiers (not credentials) and are noted only as corroborating context that the author's database is the relay target.What should I do about MAL-2026-4758?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.