Open Source 2026-05-12 · 0 days ·Credential Theft, Backdoor, Self Propagation

Mistral SDK packages imported Shai-Hulud loader

Part of the Shai-Hulud hits npm and PyPI campaign

Mistral's PyPI SDK and npm SDK packages appeared in the May 2026 Shai-Hulud wave. The affected releases carried campaign loaders through official package distribution paths.

Story

Both the Python and JavaScript SDKs for French AI lab Mistral were swept up in the May 2026 "Shai-Hulud: Here We Go Again" wave, with malicious releases appearing on PyPI and npm through the company's official package distribution channels.

According to a GitHub issue filed against mistralai/client-python and a follow-on JFrog report, the PyPI side of the campaign used a different shape than its npm counterpart. Instead of relying on an npm preinstall script to fire the loader, mistralai version 2.4.6 on PyPI placed the loader directly in mistralai/client/__init__.py, where ordinary import mistralai statements would trigger it.

JFrog also listed several Mistral npm SDK packages in its Shai-Hulud appendix, including @mistralai/mistralai, @mistralai/mistralai-azure, and @mistralai/mistralai-gcp. Those artifacts are recorded here in the Mistral-scoped entry so the campaign aggregates by vendor rather than in a sprawling catch-all package list.

Researchers said the payload family across the wave was built to harvest developer workstations and CI/CD runners, searching for local files, cloud provider credentials, Kubernetes material, HashiCorp Vault tokens, password manager state, and developer-tooling secrets.

This record is scoped to Mistral SDK distribution. The broader campaign record at [[shai-hulud-here-we-go-again]] carries the cross-ecosystem TeamPCP machinery and propagation behavior.

Affected Artifacts

mistralai

pypi · repository · Source Archive
Observed
2026-05-12
Compromised Versions
Fixed
Not listed
Hashes
  • sha256:6dbaa43bf2f3c0d3cddbca74967e952da563fb974c1ef9d4ecbb2e58e41fe81b
  • sha256:2a314ea8be337e1ca9ec833ed13ed854d9fd38bce0a519cf288f3bec8d9e6f30
  • sha256:5245eb032e336b85cff0dbb3450d591826bf2ef214fd30d7eba1a763664e151b
Evidence
distribution: pypi.org/project/mistralai/2.4.6, file: mistralai/client/__init__.py, file: /tmp/transformers.pyz, ip: 83.142.209.194 , +1 more

Incident Context

Motive
Credential Theft
Cause
Compromised Account Credentials
Transitive
Yes

Notes

  • JFrog's appendix supplies the Mistral npm package evidence; the GitHub issue documents the mistralai 2.4.6 PyPI artifact.

External References

Source record: oss/attacks/mistralai-python/meta.yaml