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

@ornikar/react-modern-calendar-datepickernpm

@ornikar/react-modern-calendar-datepicker is a confirmed malicious npm package (MAL-2026-11768) that steals credentials and exfiltrates sensitive data (malicious versions 3.2.1, 3.2.2, 3.2.3…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @ornikar/react-modern-calendar-datepicker (npm)

MAL-2026-11768
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @ornikar/react-modern-calendar-datepicker

What this malware does

npm/@ornikar/react-modern-calendar-datepicker is affected by the large-scale, self-propagating npm supply-chain worm of 2026-08-04 (the "Shai-Hulud: Here We Go Again" wave) — the same campaign that began with the compromise of the keyv and cacheable maintainer account. The listed version(s) were trojanized and republished by the worm after it reached an npm publish token belonging to a maintainer in this namespace; the payload enumerates every package a stolen token controls and republishes each with the same hook, so many packages under this scope were poisoned in the same short window. Every poisoned release adds a preinstall hook ("preinstall": "node setup.mjs") that runs on a bare npm install, before any project code. setup.mjs downloads a standalone Bun runtime and runs a byte-identical, heavily obfuscated ~728 KB second-stage credential stealer (shipped as Math_Symbol.js / math_init.js). It harvests GitHub, npm, AWS, GCP, Azure, HashiCorp Vault and Kubernetes credentials plus generic secrets and private keys (TruffleHog-style sweep), reads CI/CD secrets and identifies build runners, then republishes further packages the stolen token can reach. Rather than a fixed command-and-control host, it exfiltrates stolen findings to attacker-created GitHub repositories (descriptions reading "Shai-Hulud: Here We Go Again") and over DNS. Treat any environment that installed an affected version (with install scripts enabled) as compromised: rotate and revoke all reachable credentials (npm and GitHub tokens, cloud keys, Vault/Kubernetes secrets, and CI org/repo secrets). Part of the August 2026 npm worm that poisoned 400+ packages across many organizations.

The package declares a preinstall lifecycle hook (node setup.mjs) that downloads the Bun runtime from oven-sh GitHub releases into a temporary directory, chmods it executable, and invokes it via execFileSync against a 727KB bundled file math_init.js. The preinstall loader setup.mjs is written with hex-scrambled identifiers and control-flow obfuscation helper objects that wrap every string literal in an accessor, and probes /etc/os-release and ldd --version for Alpine/musl to select a matching Bun build. The payload math_init.js is a @bun @bun-cjs bundle with a shuffled numeric/string array and a rotating decoder (WV8StW) that mutates the array on each call, with heavily mangled identifiers; it is loaded exclusively under the Bun runtime the preinstall drops and is not referenced from the package's advertised main (lib/index.js). A React date-picker library has no functional need for a second language runtime or for executing an obfuscated sibling script at install time; the delivery chain — obfuscated lifecycle loader + alternate-runtime fetch + execution of an obfuscated bundled payload unrelated to the advertised purpose — is the alternate-runtime-dropper pattern, and npm install of this version runs the payload on the installer's host.

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Malicious versions

11 flagged
3.2.13.2.23.2.33.2.43.2.53.2.63.2.73.2.83.2.93.2.103.2.11

Indicators of compromise (SHA-256)

21d8b4344c43e47ef399073f43831bc24fd4820e04844d2622316cd057c70c1d
cfa8b3c561982f901be85a244e1f54b9c61e76277a6bfef477db372e118c8099
d841bd265b4107541a0b3da0266f027c56bf268959984462821b3e055e425fd9
dd636ce6cf489f6731583c83f34b3b1e82cb7300151b094c02f4aab14e9d1f9f
f358f3a7074669e50440f6575541e4bfdd47daaaf2d1369fefafe650e37670a4
088406371898a3d3b699b232787df018d4cdc2d0d904ad0a2045244b21adb3ca
495dbfc6a6f4450cb718d46889dbc08afa47a816f95c5c5386500e621df7c3b6
60008fee4ae6b67116174277483c18393e869b0cf502a42aba211aeac6693c9a
197b5b093e4a5eefd263725cef56439a9aae7f2b13769bf99068fd8839abb945
b462149e611f1dc0c3de8111ef8616b5212e2fd335652dfd893c89870c22acac
b650ecc053ce4af33568b84d9b92223b1797bc8323eceb552ad8577d471401ce
b75db2c103844f5199f1d0dca78820e7908c103b8dc15facd58f995eeda3af07

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 @ornikar/react-modern-calendar-datepicker (11 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging @ornikar/react-modern-calendar-datepicker across your stack and pipelines.

  2. If you installed it — respond

    @ornikar/react-modern-calendar-datepicker 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 @ornikar/react-modern-calendar-datepicker 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 @ornikar/react-modern-calendar-datepicker 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. @ornikar/react-modern-calendar-datepicker on npm has been identified as a malicious package (versions 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, and 3 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

GHSA-3xw9-cf4f-q6cvIN-MAL-2026-011643IN-MAL-2026-011581IN-MAL-2026-011569IN-MAL-2026-011642IN-MAL-2026-011641IN-MAL-2026-011833IN-MAL-2026-011570IN-MAL-2026-011838IN-MAL-2026-011644IN-MAL-2026-011770IN-MAL-2026-011834

References

Credits

  • Aikido Security · finder
  • Amazon Inspector · finder
  • SafeDep · finder
  • Socket Threat Research Team · finder

Detect & block this

O3 blocks @ornikar/react-modern-calendar-datepicker-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

@ornikar/react-modern-calendar-datepicker (npm) malicious package — MAL-2026-11768 | O3 Security