Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

cognikitPyPI

cognikit is a confirmed malicious PyPI package (MAL-2026-11419) that steals credentials and exfiltrates sensitive data (malicious version 0.1.2). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in cognikit (PyPI)

MAL-2026-11419
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
pip uninstall cognikit

What this malware does

The package is published under an 'AI toolkit' cover story (README advertises 'CognitKit: Cognitive building blocks for intelligent AI systems' and a 'from cognitkit import CognitiveEngine' quick start) but ships no AI code. The actual payload is a credential and wallet stealer. Modules enumerate Chrome/Edge/Brave/Chromium/Opera/Vivaldi User Data directories and Local/Sync 'Extension Settings' and Local Storage/leveldb paths, targeting a large hardcoded list of extension IDs for password managers (LastPass, Bitwarden, Dashlane, 1Password, Keeper, RoboForm), 2FA authenticators, and crypto wallets (MetaMask, Phantom, Coin98, Ronin, TronLink, Trust, Solflare, Ledger, Trezor, Exodus, Rabby, and others). All of these identifiers are split-string-obfuscated (e.g., APPDATA = 'Ap' + 'pData'; CHR = 'Chro' + 'me'; LDB = 'level' + 'db'; UDATA = 'Use' + 'r Data'; extension IDs concatenated from fragments) to evade string-matching detection. hardware.py builds a cross-OS hardware fingerprint (wmic csproduct/diskdrive uuid on Windows, ioreg IOPlatformUUID on macOS, /sys/class/dmi/id/product_uuid and /etc/machine-id on Linux), SHA-256s it, and resolves the victim's public IP via api.ipify.org, tagging the enrollment record as 'type: halo'. config.py hardcodes a bare-IP C2 at 45.95.186.237 (HTTP API at http://45.95.186.237:8000 and a raw TCP socket channel on 45.95.186.237:8008). fileops.py POSTs arbitrary local files to /manu_upload/ with machine_id and data_type multipart fields, and download_file_from_server GETs opaque bytes from /manu_download/ with a bearer token, writes them to disk, and on POSIX chmod 0755's the file — a second-stage payload dropper.

In this campaign, some packages (e.g. cognikit, aiassistcore) are pulled as dependencies and contain the C2 configuration and the malicious functionality, while others (like aichannel) provide fake functionality and silently execute malicious actions from dependencies. The malicious functionality is oriented to replace the copied cryptocurrency wallet addresses with these controlled by the attacker and downloaded from the C2 server, exfiltrating browser data, establishing a remote control over the device, placing malicious extensions in browsers.

IoCs are consistent with those previously attributed to North Korea's "Contagious Interview" campaign. The known TTP suggest these packages are used as dependencies in malicious interview assessments or cryptocurrency projects.

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

Campaign: 2026-07-cognikit

Reasons (based on the campaign):

  • crypto-related

  • The malicious code is intentionally included in a dependency of the package

  • keylogger

  • clipboard-modify

  • exfiltration-browser-data

  • persistence

  • rat

  • The package contains code to execute remote commands (probably limited to a specific set) on the victim's machine.

Malicious versions

1 flagged
0.1.2

Indicators of compromise (SHA-256)

e0cdc137d19f19df47efa6fae6d52ec6eda48eb2f1915ac4eb77787956d10aba
10004c754152c722c21eae7feef7b67211c78360f100931614f90f37533aafa0

Detection & response playbook

Credential / info stealer
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for cognikit (version 0.1.2). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging cognikit across your stack and pipelines.

  2. If you installed it — respond

    cognikit is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If cognikit was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks cognikit before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. cognikit on PyPI has been identified as a malicious package (version 0.1.2 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

2026-07-cognikitIN-MAL-2026-010983

References

Credits

  • Amazon Inspector · finder
  • Kamil Mańkowski (kam193) · reporter

Detect & block this

O3 blocks cognikit-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

cognikit (PyPI) malicious package — MAL-2026-11419 | O3 Security