PRE-BREACH
0 days undetected
0 files exfiltrated
0.00TB data stolen
![obscure-subdomain].novonordisk.com/app.bundle.js
view-source
const runtimeConfig = {  env: "production",  apiBase: "https://api.[internal].novonordisk/v2",  region: "eu-west-1",  githubToken: "ghp_••••••••••••",  // CI bot  ← exposed  sentryDsn: "https://•••@sentry.io/••••",  telemetry: true,};

A high-privilege GitHub token, hard-coded in JavaScript and served to every visitor of an obscure subdomain.

Illustrative reconstruction. The exact subdomain, token and commands were never publicly disclosed; values shown are redacted placeholders.

attacker@fulcrumsec — github recon
$ curl -H "Authorization: token ghp_••••" api.github.com/user
✓ authenticated — ci-bot @ novonordisk
$ gh repo list --limit 200
✓ 200 repositories accessible
$ grep -rE "token|secret|key" ./repos
✓ 47 more live credentials found
→ Okta · HuggingFace · CDD Vault …
Cybersecurity · Anatomy of an Intrusion

FulcrumSec vs. Novo Nordisk

How one exposed token became a 1.3-terabyte breach — and a $25 million demand the company refused to pay.

Scroll to follow the attack ↓
01 · March 2026

A token left in the open

FulcrumSec found an exposed high-privilege GitHub personal access token sitting in client-side JavaScript on an obscure Novo Nordisk subdomain. One forgotten secret on a public page was all it took to get inside one of the world’s largest pharmaceutical companies.

02 · Lateral movement

Spidering for credentials

“We cloned these repos and searched for additional credentials to move laterally. We found them, and kept finding them.” Each repository surrendered new live secrets, and each secret opened another system — a chain reaction the attackers simply followed deeper and deeper.

03 · ~2½ months

Hiding in plain sight

They compromised Okta and HuggingFace, and even discovered the CDD compound vault after Novo Nordisk already knew about the breach — because no one rotated those credentials. “They were very slow; we had completed exfiltration long before they rotated anything.”

04 · The haul

Patient records

Roughly 11,500 pseudonymised clinical-trial participants — from the SELECT, FLOW, SOUL, FOCUS, ONWARDS and Mim8 studies. Year of birth, sex, biomarkers, immunogenicity and lifestyle data. No names, no master key — but data that could one day be re-linked to real people.

05 · The haul

Decades of R&D

Intellectual property on Amycretin, semaglutide and CagriSema — plus 41,144 proprietary compound structures with full SMILES, five undisclosed drug programs, and the complete Dicerna RNAi pipeline from a $3.3B acquisition: delivery platforms, gene targets and siRNA modification patterns.

06 · The haul

The AI crown jewels

32 private AI models — around 1.1 TB — including a nanobody discovery engine, a patent-drafting LLM and a clinical-omics model. FulcrumSec ran its own AI agents over the haul and estimated it could save a competitor 3–5 years of program development.

07 · A line not crossed

The factory floor

During exfiltration they also grabbed manufacturing OT data — PLC addresses, SCADA tags and OPC-UA configs for chromatography and purification systems at Hillerød and Bagsværd. “We are not in the business of endangering patients.” They claimed to delete it, payment or not.

08 · June 1

The $25 million demand

“We are the attackers you have been trying to evict for the past several weeks.” Their opening email handed back unrotated Okta and HuggingFace credentials as a “peace offering,” attached a list of 700,717 files — 1.3 TB — and named the price: $25 million.

09 · June 11–15

Novo Nordisk says no

Novo Nordisk disclosed the incident on June 11 and declined to pay — their negotiator, FulcrumSec said, was “just buying time … while they prepared to notify.” On June 15, with the demand unpaid, FulcrumSec began leaking the data.

Source: DataBreaches.net — “Scoop: FulcrumSec Leaks Novo Nordisk Data After $25M Demand Goes Unpaid,” June 15, 2026, and Novo Nordisk incident updates. Figures and quotes as reported.