FortiBleed Unmasked: 86,000+ Firewalls Hacked – And Why Your Network Could Be Next + Video

Listen to this Post

Featured Image

Introduction:

In mid-June 2026, security researchers uncovered one of the largest credential-based cyber operations in history—a campaign dubbed “FortiBleed” that has compromised over 86,000 internet-facing Fortinet FortiGate firewalls and SSL VPN gateways across 194 countries. Unlike traditional software vulnerabilities, FortiBleed is not a patchable CVE; it is an industrialized, self-feeding credential operation that treats your perimeter firewall as both the target and the collection sensor. The threat actors—believed to be Russian-speaking—have assembled a verified database of working administrative and VPN credentials, with confirmed lateral movement into internal Active Directory environments and the exfiltration of classified documents from a Turkish NATO defense contractor. This article provides a comprehensive technical breakdown of the FortiBleed campaign, step-by-step mitigation procedures, and actionable commands to harden your Fortinet infrastructure against this ongoing threat.

Learning Objectives:

  • Understand the technical mechanics of the FortiBleed credential harvesting campaign and why traditional patching fails to address it
  • Master the step-by-step incident response procedure, including session termination, credential rotation, and PBKDF2 hash migration
  • Implement defense-in-depth hardening measures including MFA enforcement, trusted host restrictions, and local-in policies
  • Learn to audit FortiGate logs, detect indicators of compromise, and verify whether your organization appears in the exposed dataset
  1. Understanding FortiBleed: Not a Vulnerability, But an Industrialized Credential Machine

FortiBleed has no CVE and there is no single patch to apply. The campaign came to light only because the attackers left their own back-end server exposed to the internet with an open, browsable directory containing tooling, automation scripts, cron jobs, bash histories, and a searchable database of verified credentials. Security researcher Volodymyr “Bob” Diachenko discovered the server and, along with Hudson Rock and Kevin Beaumont, confirmed that sampled administrative credentials were authentic and active.

The operation runs in multiple phases:

Reconnaissance Phase: The attackers conducted internet-wide sweeps for FortiGate SSL VPN endpoints and exposed administrative interfaces. They targeted approximately 320,777 FortiGate devices with over 1.16 billion credential attempts.

Credential Sourcing Phase: The operators drew from two separate pools:
– Historical Fortinet-specific leaks: Including the 2021 leak tied to CVE-2018-13379 that exposed roughly half a million accounts, and the 2022 Belsen Group drop of around 15,000 FortiGate configurations
– Infostealer logs: Plaintext credentials lifted off infected endpoints—including highly complex 25+ character passwords that no brute-force effort would ever reach

SSL VPN Hash Cracking: For devices where credential reuse failed, the attackers intercepted SSL VPN authentication hashes during the login handshake and cracked them offline using a dedicated 45-GPU cluster managed through Hashtopolis, an open-source distributed cracking framework.

Parallel MSSQL Targeting: Simultaneously, the group ran 2.1 billion brute-force attempts against over 163,000 Microsoft SQL Server systems—demonstrating that this is not a Fortinet-specific operation but a broad initial-access campaign.

Post-Exploitation: Once inside, attackers pivoted directly into internal Active Directory environments, moved laterally through internal networks, and established persistence. The exposed attacker server contained post-exploitation toolkits including ad_enum.py, spray_admin.sh, and spray_da.py.

You Should Know: The dataset contains 73,932 unique firewall URLs across 194 countries and 21,632 unique domains. Generic admin accounts (35%) and built-in Fortinet system accounts (28.3%) together make up the majority of compromised credentials—pointing directly to a widespread failure to rename default accounts or rotate factory credentials.

  1. Immediate Incident Response: Terminate Sessions and Rotate Credentials

The first and most critical step is to assume compromise and act immediately. CISA urges impacted Fortinet customers to terminate all active SSL VPN and administrative sessions and reset all credentials.

Step-by-Step Guide:

Step 1: Terminate All Active Administrative Sessions

Access your FortiGate CLI via SSH or console and run:

 Show all active administrative sessions
diagnose sys admin list

Terminate all active administrative sessions
execute admin session-terminate all

Alternatively, via the FortiGate GUI: Navigate to Dashboard > Users & Devices > Active Sessions and manually terminate suspicious sessions.

Step 2: Terminate All SSL VPN Sessions

 Show active SSL VPN sessions
diagnose vpn ssl list

Terminate all SSL VPN sessions
execute vpn ssl session terminate all

Step 3: Reset All Administrative Passwords

For each administrator account, reset the password via CLI:

config system admin
edit <admin_name>
set password <new_strong_password>
end
end

Step 4: Reset All VPN User Passwords

config user local
edit <username>
set password <new_strong_password>
end
end

Step 5: Force Re-Authentication for PBKDF2 Migration

Fortinet introduced PBKDF2-based password hashing for administrator credentials in FortiOS 7.2.11, 7.4.8, and 7.6.1, replacing the legacy SHA-256-based storage mechanism. However, when upgrading from earlier versions, existing administrator passwords remain stored as SHA-256 hashes until the corresponding administrator successfully logs in following the upgrade. To force re-hashing:

config system global
set admin-password-hash pbkdf2
end

Then have each administrator log in once to trigger the re-hash. Verify the hash type:

 Check admin password hash type
diagnose sys admin list

3. Enforce PBKDF2 and Remove Legacy SHA-256 Hashes

Legacy SHA-256 hashes remain vulnerable to offline brute-force attacks. The attackers specifically targeted these weaker hashes.

Step-by-Step Guide:

Step 1: Verify Current Hash Settings

 Show current admin password encryption settings
show system global | grep admin-password-hash

Step 2: Enable PBKDF2 Hashing

config system global
set admin-password-hash pbkdf2
end

Step 3: Remove Legacy Password Settings

Fortinet provides guidance to remove older legacy password settings via the `set login-lockout-upon-weaker-encryption` command:

config system global
set login-lockout-upon-weaker-encryption enable
end

Step 4: Force Password Change for All Administrators

To ensure all administrators are using PBKDF2 hashes, force a password change on next login:

config system admin
edit <admin_name>
set force-password-change enable
end
end

Step 5: Verify PBKDF2 is Active

After all administrators have logged in and changed passwords, verify:

diagnose sys admin list

Look for “pbkdf2” in the hash output for each admin account.

4. Enforce Phishing-Resistant Multi-Factor Authentication (MFA)

CISA recommends requiring phishing-resistant MFA on all remote access and administrative accounts. Fortinet supports multiple MFA methods including FortiToken, third-party TOTP, and certificate-based authentication.

Step-by-Step Guide:

Step 1: Enable MFA for All Administrator Accounts

config system admin
edit <admin_name>
set two-factor enable
set two-factor-authentication <fortitoken|email|sms>
end
end

Step 2: Enforce MFA for SSL VPN Users

config vpn ssl settings
set auth-timeout 28800
set force-two-factor-auth enable
end

Step 3: Configure FortiToken for Administrators

config system admin
edit <admin_name>
set fortitoken <serial_number>
end
end

Step 4: Configure TOTP (Google Authenticator Compatible)

config user totp
edit <totp_name>
set seed <base32_seed>
end
end

config system admin
edit <admin_name>
set two-factor enable
set totp <totp_name>
end
end

Step 5: Enforce MFA for All Remote Access

Create a firewall policy that enforces MFA for VPN access:

config firewall policy
edit <policy_id>
set name "VPN-MFA-Enforcement"
set srcintf "wan1"
set dstintf "internal"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set ssl-ssh-profile "certificate-inspection"
end
end

5. Restrict Administrative Access and Reduce Attack Surface

The exposed dataset reveals that 30,829 confirmed hosts expose remote administration on port 22 and 12,990 expose web management on port 80. Many affected devices had management interfaces exposed to the public internet. Restricting administrative access is essential.

Step-by-Step Guide:

Method 1: Configure Trusted Hosts (Per-Administrator Restriction)

config system admin
edit <admin_name>
set trusthost1 <ip_address>/<subnet>
set trusthost2 <ip_address>/<subnet>
set trusthost3 <ip_address>/<subnet>
end
end

Trusted hosts restrict the source IP addresses from which an administrator can log in.

Method 2: Configure Local-In Policy (More Granular Control)

Local-in policies allow administrators to granularly define the source and destination addresses, interface, and services for management access:

config firewall local-in-policy
edit 1
set intf "wan1"
set srcaddr "trusted_admin_subnet"
set dstaddr "fortigate_wan_ip"
set action accept
set service "HTTPS" "SSH" "PING"
set schedule "always"
end
edit 2
set intf "wan1"
set srcaddr "all"
set dstaddr "fortigate_wan_ip"
set action deny
set service "HTTPS" "SSH" "PING"
set schedule "always"
end
end

Method 3: Remove Internet Administration Altogether (Best Practice)

Disable administrative access on external interfaces entirely:

config system interface
edit "wan1"
set allowaccess "ping"
end
end

Allow administrative access only from internal networks or via a dedicated management interface.

Method 4: Disable Unused Administrative Services

config system global
set admin-https-redirect enable
set admin-http-port 80
set admin-https-port 443
set admin-sport 22
set admin-telnet disable
set admin-ssh enable
set admin-console enable
end
  1. Audit Logs and Hunt for Indicators of Compromise

Organizations must review firewall, VPN, authentication, and domain controller logs for lateral movement, unusual access, suspicious accounts, or unauthorized configuration changes.

Step-by-Step Guide:

Step 1: Review Administrative Login Logs

 Show admin login events
diagnose log admin display

Show recent admin logins with source IP
diagnose log admin display | grep -i "login"

Show failed login attempts
diagnose log admin display | grep -i "failed"

Step 2: Check for Unrecognized Administrator Accounts

 List all administrator accounts
show system admin

Look for suspicious accounts such as:
 - forticloud
 - fortiuser
 - fortinet-support
 - fortinet-tech-support

Step 3: Review VPN Authentication Logs

 Show SSL VPN login events
diagnose vpn ssl log

Show failed SSL VPN attempts
diagnose vpn ssl log | grep -i "fail"

Step 4: Review Event Logs for Unauthorized Changes

 Show system event logs
diagnose log system display

Filter for configuration changes
diagnose log system display | grep -i "config"

Step 5: Enable Comprehensive Logging

Ensure event and system logging are enabled:

config log eventfilter
set event enable
set system enable
end

Step 6: Configure Syslog Forwarding for Centralized Monitoring

config log syslogd setting
set status enable
set server <syslog_server_ip>
set mode reliable
end

Step 7: Check for Compromised Credentials

Use Hudson Rock’s free FortiBleed lookup tool at https://www.hudsonrock.com/fortinet to check whether your domain appears in the exposed dataset. SOCRadar also provides a FortiBleed Exposure Checker at https://socradar.io/free-tools/fortibleed.

7. Validate Configuration and Remove Unauthorized Accounts

Attackers have been observed creating backdoor accounts and modifying firewall configurations to maintain persistence.

Step-by-Step Guide:

Step 1: Compare Against a Known Good Configuration

If you have a backup of your configuration from before the compromise window:

 Save current configuration
execute backup config tftp <filename> <tftp_server>

Compare with known good configuration (manual review)

Step 2: Audit All Firewall Policies

 Show all firewall policies
show firewall policy

Look for:
 - Policies with unusual names
 - Policies allowing any/any traffic
 - Policies with logging disabled
 - Newly created policies

Step 3: Remove Unauthorized Administrator Accounts

 Delete suspicious admin accounts
config system admin
delete <suspicious_admin_name>
end

Step 4: Audit VPN User Accounts

 List all VPN users
show user local

Remove unauthorized VPN users
config user local
delete <suspicious_username>
end

Step 5: Review and Reset API Users

 List API users
show system api-user

Reset API user keys
config system api-user
edit <api_user_name>
set api-key <new_strong_key>
end
end

Step 6: Check for Rogue Super-Admin Accounts

 Look for administrators with super_admin profile
show system admin | grep -A 5 "super_admin"

8. Upgrade to Supported Firmware Versions

Fortinet recommends upgrading FortiGate appliances to current supported FortiOS releases (7.4, 7.6, or 8.0).

Step-by-Step Guide:

Step 1: Check Current Firmware Version

 Show current firmware version
get system status | grep "Version"

Step 2: Download Firmware from Fortinet Support Portal

Download the appropriate firmware image from https://support.fortinet.com.

Step 3: Upload and Install Firmware via CLI

 Upload firmware via TFTP
execute restore image tftp <filename> <tftp_server>

Or via USB
execute restore image usb <filename>

Reboot to complete upgrade
execute reboot

Step 4: Verify Successful Upgrade

get system status | grep "Version"

Step 5: Post-Upgrade Checklist

  • Re-apply PBKDF2 hashing (see Section 3)
  • Re-enforce MFA (see Section 4)
  • Re-apply trusted host and local-in policies (see Section 5)
  • Verify all configurations are intact

What Undercode Say:

  • FortiBleed is not a vulnerability—it is an operational security failure. The campaign exploits organizations that never rotated passwords after prior breaches, used default credentials, or left management interfaces exposed to the public internet. A software patch alone will not resolve this.

  • Credential complexity offered no protection. Passwords of 25 or more characters—including symbols, numbers, and mixed case—were found in the dataset in plaintext because they were pulled verbatim from infostealer logs. A strong password that has passed through an infostealer infection offers the same protection as a weak one.

  • The campaign is still active. Threat actors continue to scan and access new Fortinet devices in real time. Organizations must act immediately—not after a patch is released, but right now.

  • Assume compromise and perform integrity verification. Because persistence may exist below the operating system, patching alone will not mitigate all threats. Organizations should treat affected devices as compromised and perform integrity scans or re-image before bringing them back online.

  • Downstream threats are imminent. Compromised credentials are being packaged and sold on eCrime marketplaces in standard Initial Access Broker format—including victim company type, revenue, and geography. Multiple downstream threat actor groups, including ransomware operators, may already have purchased access to affected networks.

  • Attribution points to Russian-speaking threat actors with espionage objectives. The confirmed targeting of a NATO defense contractor and the exfiltration of classified documents raise the likelihood of espionage objectives alongside opportunistic financial gain.

Prediction:

  • -1 The credential dataset will continue to circulate on cybercrime forums for months or years. Organizations that fail to rotate credentials immediately will remain vulnerable to downstream attacks from ransomware operators and espionage groups who purchase access.

  • -1 The FortiBleed campaign has fundamentally changed the threat landscape for network perimeter devices. The attackers have demonstrated that credential reuse and weak password hygiene at scale can compromise approximately half of all internet-facing FortiGate firewalls globally.

  • -1 Regulatory and insurance implications will be severe. Organizations found to have default or unchanged credentials on internet-facing devices may face significant liability, compliance violations, and denial of cyber insurance claims.

  • +1 The incident has catalyzed widespread awareness of credential hygiene and operational security. Many organizations will accelerate MFA deployment, implement privileged access management, and adopt zero-trust architectures as a direct result of FortiBleed.

  • -1 The attackers’ exposed server has provided unprecedented visibility into their operations, but the infrastructure has been deactivated. Future operations will be more stealthy, making detection and attribution significantly more difficult.

  • +1 Security vendors and open-source communities are rapidly developing detection rules, scanning tools, and hardening guides. The collaborative response—including coordination between SOCRadar, Shadowserver Foundation, CISA, and independent researchers—demonstrates the effectiveness of public-private partnerships in cybersecurity.

  • -1 The campaign’s success will likely inspire copycat operations targeting other network device vendors (Palo Alto, Sophos, Cisco). Unit 42 has already observed reports of Sophos devices being targeted as part of the same campaign.

▶️ Related Video (82% Match):

https://www.youtube.com/watch?v=00TEbWB37fY

🎯Let’s Practice For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

IT/Security Reporter URL:

Reported By: Huzeyfe After – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow UndercodeTesting & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin | 🦋BlueSky