COWMODSКаталог модов

DDoSDefender

Real-time protection against bots and connection abuse.

5,5 тыс.11обновлён 16 окт. 2026 г.
УправлениеОптимизацияУтилиты

Описание

DDoSDefender delivers high-performance mitigation by plugging directly into your server's Netty pipeline. Every connection is inspected from its very first packet: invalid handshakes, ping floods and login bursts are rate-limited and cancelled before your server spends anything on them.

Logins then pass through a layered verification pipeline. Each player is checked against a shared database of genuine Minecraft accounts (V2.0+), and a detection suite of over 25 heuristic checks examines every username: letter-pair plausibility (V2.0+), random casing (V2.0+), entropy, keyboard walks, leet-speak, UUID fingerprinting, swarm detection and more. Bots using made-up or stolen identities are stopped before they ever reach your server.

Runs on Paper, Spigot, Purpur, Folia, BungeeCord, Waterfall and Velocity (V2.0+). Completely free, with no premium tier and no locked features.


Shared Player Database (V2.0+)

DDoSDefender comes with a database of known, genuine Minecraft accounts, so players can be confirmed instantly and locally instead of waiting on Mojang. Joins are faster, Mojang's rate limits stop being a weak spot, and fake accounts are spotted straight away.

  • Encrypted and locked to your server
  • Privacy first: no readable usernames or personal data, and player IP addresses are never sent
  • Updates itself in the background, with no restarts needed

Under-Attack Mode (V2.0+)

When DDoSDefender detects a coordinated attack, such as bots replaying real player names from many networks at once, it automatically switches to enhanced protection: only your regular players can join until the attack is over. It switches itself off once things calm down, and your staff get an alert in chat the moment it happens.

/ii lockdown on | off | status: take manual control at any time

Failed-Login Learning (V2.0+)

Connections that fail Minecraft's own account verification are remembered. Repeat offenders are blocked for longer and longer, and whole networks are shut out if fake logins keep coming from them. Genuine accounts are never blocked.

FastPass

DDoSDefender features our proprietary FastPass system: once a player is verified, they skip the security checks on future logins. Your community gets seamless connections while your server stays protected.

  • Multi-network (V2.0+): players are recognised on any of their usual networks (up to 3, e.g. home, mobile data and a friend's house)

/ii fastpass add <playername>: pre-approve a player who can't get in /ii test <playername>: see how any name scores against the detection suite

Accurate Detection (V2.0+)

The name checks are tuned against over 300,000 real player names, so your real players aren't caught in the crossfire: only 0.01% of genuine names are blocked on their name alone. Anything borderline gets a full account verification instead of an instant block.

Works With Your Setup

  • TCPShield (V2.0+): real player IPs are read automatically, with no extra setup
  • Geyser / Floodgate (V2.0+): Bedrock players are handled correctly
  • ViaVersion (V2.0+): clients from 1.7 up to future releases are accepted
  • Offline-mode servers (V2.0+): adapts automatically

Scope & Recommended Setup

DDoSDefender focuses exclusively on managing and filtering application-level connection attempts. It does not, and cannot, protect your physical network infrastructure: no software-level plugin can mitigate volumetric attacks at the ISP level.

For comprehensive protection, we strongly recommend a layered security strategy: pair DDoSDefender with a network-level proxy like TCPShield. TCPShield hides your IP and absorbs massive network-layer floods, and DDoSDefender provides the "last mile" of defence by filtering the Minecraft-specific handshake exploits and bot logins that proxies pass through.

DDoSDefender's verification pipeline runs fully off the main server thread, so mitigation doesn't cost you TPS. Performance scales with the CPU threads available to your server (more threads means faster processing of concurrent connections during a flood), so we recommend a host with adequate CPU headroom rather than a heavily oversold or shared core.

Requires: Java 17+ · PacketEvents 2.13+

Галерея

DDoSDefender V2.0 Config.yml

Последние версии

Все версии →
release

DDoSDefender Release V2.0

V2.0
16 окт. 2026 г.240Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, bungeecord, folia, paper, spigot, velocity, waterfall
Скачать
Что нового
# DDoSDefender 2.0: The Big One DDoSDefender 2.0 is a full rebuild. Almost every part of the plugin has been rewritten, it now runs on **Paper, BungeeCord/Waterfall, Velocity and Folia** *(Still in Beta)*, and it introduces a brand-new **shared player database**. DDoSDefender stays **100% free**: no premium tier, no licences, no locked features. --- ## ✨ New features ### 🌐 NEW: Shared player database DDoSDefender now comes with a database of **known, real Minecraft accounts**. When a player joins, DDoSDefender can confirm their account **instantly and locally** instead of asking Mojang every time. Joins are faster, Mojang's rate limits are no longer a weak spot, and bots using made-up accounts are spotted straight away. - Downloaded automatically on first start (about 450 MB on disk) - Kept up to date every few hours in the background, with **no restart needed** - When a real account that isn't in the database yet joins your server and Mojang confirms it, it's added for everyone, so the database keeps growing *(you can turn this off with `report-new-players: false`)* ### 🛡️ Under-attack mode (automatic) DDoSDefender now spots **distributed attacks**: bots replaying real player names from many networks at once. - Turns on by itself when **10+ failed account verifications come from 5+ different networks within 2 minutes** - While it's on, **only frequent players (FastPass) can join**. Everyone else is asked to try again in a few minutes. - One newcomer is let through every 15 seconds as a probe, so DDoSDefender knows when the attack has stopped (and real new players still get a chance) - Turns itself **off after 5 quiet minutes** - Manual control: `/ddosdefender lockdown on | off | status` ### 🔔 Attack alerts - A clear console alert when an attack is detected and when it ends - **In-game chat alerts for staff** (operators by default, or anyone with `iudex.alerts`) ### 🧠 Failed-login learning When a connection fails Minecraft's own account check (someone pretending to be a real player), DDoSDefender remembers it: - That IP is blocked for **60 seconds**, doubling on every repeat up to **1 hour** - **3 failures from the same network in 10 minutes** block the whole network for **10 minutes** - Real accounts are never blocked. Only the networks the fake logins come from are. ### ⚖️ Smart Mojang lookup budget Mojang only allows so many lookups, and bots used to be able to use them all up so real newcomers couldn't be checked. Lookups are now **shared out by how suspicious a name looks**: - Normal-looking names can use the whole budget - Slightly suspicious names get at most 60% of it, and very suspicious ones 30% - Obvious bot names never use a lookup at all ### ⚡ FastPass: up to 3 networks FastPass now remembers **up to 3 networks per player** (for example home, mobile data and a friend's house), so regulars get straight in wherever they usually play from. When a player starts using a 4th network, the one they've used least recently is forgotten. ### 📊 Cleaner console - The spammy "Malicious Traffic Nullified" lines that printed every 10 seconds are gone - Now: **one summary every 15 minutes**, only printed if something was actually blocked > *DDoSDefender has nullified 4,812 malicious connections from 37 networks in the last 15 minutes* - Plus a single **heavy-traffic warning** if a large burst hits (at most once a minute) ### 🔌 More platforms and setups - **Velocity** support fixed: DDoSDefender now loads and protects Velocity proxies properly - **BungeeCord / Waterfall** fully supported - **TCPShield**: real player IPs are read automatically from TCPShield's signed data, with no extra setup - **Geyser / Floodgate**: Bedrock players are recognised and handled correctly - **Offline-mode servers**: account checks switch off automatically, so cracked servers no longer block everyone - **ViaVersion-friendly**: clients from 1.7 up to future versions are accepted, instead of only a fixed list of versions - *Note: Folia support is still in Beta.* --- ## 🔐 Security and privacy The database was built with abuse in mind from day one: - **Encrypted and locked to your server:** each server receives its own protected copy. - **Privacy first:** the database holds no readable usernames or personal data, only what's needed to recognise genuine accounts. - **Tamper-proof:** DDoSDefender only accepts data that is verified and is coming from the official database server, so nobody can feed it fake information. - **Abuse-resistant:** registrations and downloads are protected and rate-limited, so the database can't be scraped or flooded. - **Hardened infrastructure:** the database server is firewalled, rate-limited and has no open ports. - **Minimal data:** the only thing ever sent back is the UUID and name of a newly confirmed account. **Player IP addresses and server details are never sent.** --- ## 🔍 Smarter bot detection The name checks were retuned using **over 300,000 real player names**: - Real players flagged as suspicious: **25.9% → 3.3%** - Real players hard-blocked by name alone: **0.23% → 0.01%** - Bot names are still caught at high rates (78–91% depending on the bot's naming style) - New checks: **letter-pair plausibility** (spots keyboard-mash names) and **random casing** (spots names like `xQ7kZpLmVb`) --- ## 🐛 Bug fixes - Fixed `trusted-proxies` not being read correctly on BungeeCord and Velocity - Fixed the default `expected-port` blocking every player on proxy and port-forwarded setups (it now defaults to `0`, meaning don't check) - Fixed older and newer Minecraft versions being refused when using ViaVersion / ViaBackwards - Fixed temporary Mojang outages wrongly marking real accounts as "not found" - Fixed pre-1.19 clients being rejected too easily - Fixed signature data being lost for 1.19.0–1.19.2 clients - Fixed listeners doubling up after a plugin reload - Fixed a slow memory leak in the login queue - Fixed kick messages failing silently on Waterfall - Fixed server-list pings sometimes being answered with a login packet --- ## 🧹 Under the hood - Complete code rewrite into a clean, readable structure that's easier to maintain and faster to update - Verification runs off the main thread, so lag spikes from attacks are a thing of the past - **AccountGuard has been removed.** Its job is now covered better by the database, failed-login learning and under-attack mode. --- ## ⌨️ Commands and permissions `/ddosdefender` (aliases: `/ii`, `/iudex`, `/iudexindustries`) | Command | Permission | What it does | |---|---|---| | `/ddosdefender fastpass add <player>` | `iudex.fastpass` | Pre-approve a player who can't get in | | `/ddosdefender test <player>` | `iudex.test` | See how a name scores against the bot checks | | `/ddosdefender lockdown on\|off\|status` | `iudex.lockdown` | Control under-attack mode | | — | `iudex.alerts` | Receive in-game attack alerts | All permissions are given to operators by default on Paper/Spigot. On BungeeCord and Velocity, give them through your permissions plugin. --- ## ⬆️ Upgrading from 1.x 1. Install **PacketEvents 2.13+** (required on every platform) 2. **Delete your old `config.yml`** and let 2.0 create a fresh one. Several options changed (`expected-host` was removed, and `trusted-proxies` and `bedrock-prefix` were added). 3. On first start, DDoSDefender registers your server and downloads its database copy. This takes a few minutes, and your server stays protected while it happens. **Requires:** Java 17+ · PacketEvents 2.13+ --- > *DDoSDefender filters malicious connections at the application level. No plugin can stop volumetric floods that overwhelm your network connection itself. For full protection, pair DDoSDefender with a network-level proxy such as **TCPShield**.*
beta

DDoSDefender Beta V1.9

1.9
28 сент. 2026 г.121Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, bungeecord, folia, paper, spigot, waterfall
Скачать
Что нового
Added Support for: - Bungeecord - Waterfall - Folia Added: trusted-proxies: (to config.yml)
beta

DDoSDefender Beta V1.8

V1.8
8 сент. 2026 г.97Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
## V1.80 — Smarter Bot Detection **Detection suite: 19 → 27 checks**, with 8 new checks targeting bot naming patterns — keyboard walks (`qwerty`, `asdfgh`), digit-stuffed names, `xX_Name_Xx` wrappers, impersonation of default names (`Player123`, `Guest42`), attack-tool vocabulary, and counter-driven name floods (`name1`, `name2`, `name3`...). **AccountGuard reworked** — previously tracked everything by player name, so bots using a fresh unique name every connection reset its memory each time. It now also tracks reputation per subnet (IP range), so repeat bad behavior from the same source is actually remembered. **How enforcement works now:** - 🟢 **Allow** — normal players, untouched - 🟡 **Verify** — suspicious activity silently triggers a Mojang ownership check. Real players pass invisibly; offline/spoofed bots don't. - 🔴 **Block** — a single name is blocked briefly (60s) for hammering; a whole subnet is only blocked (30s) for extreme, sustained floods **Legitimate players are protected** — returning regulars skip extra scrutiny entirely, and nobody is blocked just because someone else on their subnet is misbehaving. **Also fixed:** connection frequency is now actually used in scoring (previously tracked but ignored), short-session detection can properly escalate again, and a memory cap was added to stop flood attacks from bloating server memory. No config changes needed — just update and go.
release

DDoSDefender Release V1.7

V1.7
9 авг. 2026 г.629Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
**Added Support for:** 26.2, 26.1, 1.18
release

DDoSDefender Release V1.6

V1.6
23 июл. 2026 г.157Minecraft: 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, spigot
Скачать
Что нового
- **FastPass: removed synchronous save-on-verify from the login hot path** — FastPass.save() used to run on every successful login verification, rewriting and re-encrypting the whole data file each time. As the verified-player list grew, this got slower and slower, blocking a thread with disk I/O on every new join. Verified names are now cached in memory and only flushed to disk periodically (same pattern as AccountGuard.cleanup() / MojangAPI.cleanup()) and on shutdown. Logins are no longer blocked by file I/O, and this fixes a major performance bug. - **Added: bStats**
release

DDoSDefender Release V1.5

V1.5
1 июл. 2026 г.215Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
# DDOSDefenderPE — Patch Notes **Iudex Industries | Internal Build** ## Security Vulnerabilities Patched ### 🔴 [CRITICAL] Rate-limit bypass via LoginStart packet buffering Minecraft's TCP stack buffers packets. When a handshake is cancelled by `HandshakeListener`, a `LoginStart` packet already in the buffer would still fire in `LoginStartListener` — completely bypassing the per-subnet and global rate limiters. This meant an attacker could send a burst of handshakes, have them all cancelled, but still flood `LoginStart` checks with no cooldown applied. **Fix:** `LoginStartListener` now maintains its own fully independent rate limiter (identical values to `HandshakeListener`: per-subnet 1-second cooldown, global soft limit 25/s, hard limit 50/s). The rate-limit gate runs before any other logic. Re-injected packets (players passing verification) are exempt via the verified/pending connection check, which runs first. --- ### 🟠 [HIGH] TrustedIPs allowed single device to push unlimited accounts The TrustedIPs system stored exact IPs (not subnets) and allowed those IPs to bypass the global login rate limit entirely. One device that had already been verified could send an unlimited number of accounts through the queue, defeating the global hard cap of 50 logins/second. **Fix:** `TrustedIPs` class removed entirely. FastPass was reverted to subnet-based verification (`/24` for IPv4, `/48` for IPv6), and `HandshakeListener` was reverted to blocking all connections above the rate limit with no trusted bypass. Fast-path verification is now handled purely by AccountGuard + FastPass tier logic. --- ### 🟠 [HIGH] FastPass bypassed AccountGuard completely for CAUTION/SUSPICIOUS accounts FastPass-verified players were allowed through unconditionally regardless of their AccountGuard tier, including SUSPICIOUS accounts. This meant a player who had been flagged as suspicious (score ≥ 60) could exploit their FastPass entry to skip Mojang API verification. **Fix:** FastPass now only provides a fast-path for CLEAN and CAUTION tiers. SUSPICIOUS still forces Mojang API verification (if not FastPass subnet-matched). HIGH_RISK blocks FastPass players outright. --- ### 🟠 [HIGH] FastPass stored exact IP, allowing subnet change to bypass re-verification FastPass stored the player's exact IP at the time of verification. Changing IP (DHCP renewal, VPN, mobile network) would cause a FastPass miss and fall through to full re-verification — but the old exact-IP entry remained, which could have been exploited if subnet assumptions were relaxed in future changes. **Fix:** FastPass now stores the subnet (`/24` for IPv4, `/48` for IPv6) instead of the exact IP. A player on the same subnet passes instantly. A subnet change triggers re-verification. --- ### 🟡 [MEDIUM] AccountGuard penalised every rapid reconnect individually, causing false-positive death spirals The reconnect scoring system added score on every individual fast reconnect (gap < 5s → +30, 5–30s → +15, 30s–3min → +5). A player falsely flagged and blocked would reconnect to check remaining time, each reconnect adding more score. When the block expired, their score was still above the HIGH_RISK threshold and they were immediately re-blocked — indefinitely. **Fix:** Reconnect scoring is now pattern-based. A single rapid reconnect scores zero (impatience). Only sustained patterns of 2+ rapid gaps (< 20s) or 3+ moderate gaps (< 90s) accumulate score. Additionally, reconnect scoring is skipped entirely while the player is blocked — reconnecting to check remaining time produces zero score change. --- ### 🟡 [MEDIUM] No disconnect packet sent on connection cancellation When a connection was cancelled with `event.setCancelled(true)`, no Minecraft Login Disconnect packet was sent to the client. Minecraft clients that receive no response auto-retry the connection immediately, creating a reconnect loop that amplifies attack traffic and causes bots to hammer the server faster. **Fix:** All cancellation paths now call `DisconnectHelper.sendAndClose()`, which sends a `WrapperLoginServerDisconnect` packet before closing the connection. Clients receive a proper disconnect reason and do not auto-retry. --- ### 🟢 [LOW] `getConnectionId()` NPE on unresolved socket addresses `LoginStartListener.getConnectionId()` called `address.getAddress().getHostAddress()` without null-checking `address.getAddress()`. Unresolved `InetSocketAddress` instances (possible with certain proxy/VPN forwarding configurations) would throw a `NullPointerException` on the executor thread, silently dropping the connection without cleanup. **Fix:** Added `|| address.getAddress() == null` guard — returns null (treated as unknown connection) instead of throwing.
release

DDoSDefender Release V1.5

V1.5
1 июл. 2026 г.19Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6bukkit, paper, purpur, spigot
Скачать
Что нового
# DDOSDefenderPE — Patch Notes **Iudex Industries | Internal Build** ## Security Vulnerabilities Patched ### 🔴 [CRITICAL] Rate-limit bypass via LoginStart packet buffering Minecraft's TCP stack buffers packets. When a handshake is cancelled by `HandshakeListener`, a `LoginStart` packet already in the buffer would still fire in `LoginStartListener` — completely bypassing the per-subnet and global rate limiters. This meant an attacker could send a burst of handshakes, have them all cancelled, but still flood `LoginStart` checks with no cooldown applied. **Fix:** `LoginStartListener` now maintains its own fully independent rate limiter (identical values to `HandshakeListener`: per-subnet 1-second cooldown, global soft limit 25/s, hard limit 50/s). The rate-limit gate runs before any other logic. Re-injected packets (players passing verification) are exempt via the verified/pending connection check, which runs first. --- ### 🟠 [HIGH] TrustedIPs allowed single device to push unlimited accounts The TrustedIPs system stored exact IPs (not subnets) and allowed those IPs to bypass the global login rate limit entirely. One device that had already been verified could send an unlimited number of accounts through the queue, defeating the global hard cap of 50 logins/second. **Fix:** `TrustedIPs` class removed entirely. FastPass was reverted to subnet-based verification (`/24` for IPv4, `/48` for IPv6), and `HandshakeListener` was reverted to blocking all connections above the rate limit with no trusted bypass. Fast-path verification is now handled purely by AccountGuard + FastPass tier logic. --- ### 🟠 [HIGH] FastPass bypassed AccountGuard completely for CAUTION/SUSPICIOUS accounts FastPass-verified players were allowed through unconditionally regardless of their AccountGuard tier, including SUSPICIOUS accounts. This meant a player who had been flagged as suspicious (score ≥ 60) could exploit their FastPass entry to skip Mojang API verification. **Fix:** FastPass now only provides a fast-path for CLEAN and CAUTION tiers. SUSPICIOUS still forces Mojang API verification (if not FastPass subnet-matched). HIGH_RISK blocks FastPass players outright. --- ### 🟠 [HIGH] FastPass stored exact IP, allowing subnet change to bypass re-verification FastPass stored the player's exact IP at the time of verification. Changing IP (DHCP renewal, VPN, mobile network) would cause a FastPass miss and fall through to full re-verification — but the old exact-IP entry remained, which could have been exploited if subnet assumptions were relaxed in future changes. **Fix:** FastPass now stores the subnet (`/24` for IPv4, `/48` for IPv6) instead of the exact IP. A player on the same subnet passes instantly. A subnet change triggers re-verification. --- ### 🟡 [MEDIUM] AccountGuard penalised every rapid reconnect individually, causing false-positive death spirals The reconnect scoring system added score on every individual fast reconnect (gap < 5s → +30, 5–30s → +15, 30s–3min → +5). A player falsely flagged and blocked would reconnect to check remaining time, each reconnect adding more score. When the block expired, their score was still above the HIGH_RISK threshold and they were immediately re-blocked — indefinitely. **Fix:** Reconnect scoring is now pattern-based. A single rapid reconnect scores zero (impatience). Only sustained patterns of 2+ rapid gaps (< 20s) or 3+ moderate gaps (< 90s) accumulate score. Additionally, reconnect scoring is skipped entirely while the player is blocked — reconnecting to check remaining time produces zero score change. --- ### 🟡 [MEDIUM] No disconnect packet sent on connection cancellation When a connection was cancelled with `event.setCancelled(true)`, no Minecraft Login Disconnect packet was sent to the client. Minecraft clients that receive no response auto-retry the connection immediately, creating a reconnect loop that amplifies attack traffic and causes bots to hammer the server faster. **Fix:** All cancellation paths now call `DisconnectHelper.sendAndClose()`, which sends a `WrapperLoginServerDisconnect` packet before closing the connection. Clients receive a proper disconnect reason and do not auto-retry. --- ### 🟢 [LOW] `getConnectionId()` NPE on unresolved socket addresses `LoginStartListener.getConnectionId()` called `address.getAddress().getHostAddress()` without null-checking `address.getAddress()`. Unresolved `InetSocketAddress` instances (possible with certain proxy/VPN forwarding configurations) would throw a `NullPointerException` on the executor thread, silently dropping the connection without cleanup. **Fix:** Added `|| address.getAddress() == null` guard — returns null (treated as unknown connection) instead of throwing.
release

DDoSDefender Release V1.5

V1.5
1 июл. 2026 г.17Minecraft: 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4bukkit, paper, purpur, spigot
Скачать
Что нового
# DDOSDefenderPE — Patch Notes **Iudex Industries | Internal Build** ## Security Vulnerabilities Patched ### 🔴 [CRITICAL] Rate-limit bypass via LoginStart packet buffering Minecraft's TCP stack buffers packets. When a handshake is cancelled by `HandshakeListener`, a `LoginStart` packet already in the buffer would still fire in `LoginStartListener` — completely bypassing the per-subnet and global rate limiters. This meant an attacker could send a burst of handshakes, have them all cancelled, but still flood `LoginStart` checks with no cooldown applied. **Fix:** `LoginStartListener` now maintains its own fully independent rate limiter (identical values to `HandshakeListener`: per-subnet 1-second cooldown, global soft limit 25/s, hard limit 50/s). The rate-limit gate runs before any other logic. Re-injected packets (players passing verification) are exempt via the verified/pending connection check, which runs first. --- ### 🟠 [HIGH] TrustedIPs allowed single device to push unlimited accounts The TrustedIPs system stored exact IPs (not subnets) and allowed those IPs to bypass the global login rate limit entirely. One device that had already been verified could send an unlimited number of accounts through the queue, defeating the global hard cap of 50 logins/second. **Fix:** `TrustedIPs` class removed entirely. FastPass was reverted to subnet-based verification (`/24` for IPv4, `/48` for IPv6), and `HandshakeListener` was reverted to blocking all connections above the rate limit with no trusted bypass. Fast-path verification is now handled purely by AccountGuard + FastPass tier logic. --- ### 🟠 [HIGH] FastPass bypassed AccountGuard completely for CAUTION/SUSPICIOUS accounts FastPass-verified players were allowed through unconditionally regardless of their AccountGuard tier, including SUSPICIOUS accounts. This meant a player who had been flagged as suspicious (score ≥ 60) could exploit their FastPass entry to skip Mojang API verification. **Fix:** FastPass now only provides a fast-path for CLEAN and CAUTION tiers. SUSPICIOUS still forces Mojang API verification (if not FastPass subnet-matched). HIGH_RISK blocks FastPass players outright. --- ### 🟠 [HIGH] FastPass stored exact IP, allowing subnet change to bypass re-verification FastPass stored the player's exact IP at the time of verification. Changing IP (DHCP renewal, VPN, mobile network) would cause a FastPass miss and fall through to full re-verification — but the old exact-IP entry remained, which could have been exploited if subnet assumptions were relaxed in future changes. **Fix:** FastPass now stores the subnet (`/24` for IPv4, `/48` for IPv6) instead of the exact IP. A player on the same subnet passes instantly. A subnet change triggers re-verification. --- ### 🟡 [MEDIUM] AccountGuard penalised every rapid reconnect individually, causing false-positive death spirals The reconnect scoring system added score on every individual fast reconnect (gap < 5s → +30, 5–30s → +15, 30s–3min → +5). A player falsely flagged and blocked would reconnect to check remaining time, each reconnect adding more score. When the block expired, their score was still above the HIGH_RISK threshold and they were immediately re-blocked — indefinitely. **Fix:** Reconnect scoring is now pattern-based. A single rapid reconnect scores zero (impatience). Only sustained patterns of 2+ rapid gaps (< 20s) or 3+ moderate gaps (< 90s) accumulate score. Additionally, reconnect scoring is skipped entirely while the player is blocked — reconnecting to check remaining time produces zero score change. --- ### 🟡 [MEDIUM] No disconnect packet sent on connection cancellation When a connection was cancelled with `event.setCancelled(true)`, no Minecraft Login Disconnect packet was sent to the client. Minecraft clients that receive no response auto-retry the connection immediately, creating a reconnect loop that amplifies attack traffic and causes bots to hammer the server faster. **Fix:** All cancellation paths now call `DisconnectHelper.sendAndClose()`, which sends a `WrapperLoginServerDisconnect` packet before closing the connection. Clients receive a proper disconnect reason and do not auto-retry. --- ### 🟢 [LOW] `getConnectionId()` NPE on unresolved socket addresses `LoginStartListener.getConnectionId()` called `address.getAddress().getHostAddress()` without null-checking `address.getAddress()`. Unresolved `InetSocketAddress` instances (possible with certain proxy/VPN forwarding configurations) would throw a `NullPointerException` on the executor thread, silently dropping the connection without cleanup. **Fix:** Added `|| address.getAddress() == null` guard — returns null (treated as unknown connection) instead of throwing.
release

DDoSDefender Release V1.40

V1.4
22 июн. 2026 г.117Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
# DDoSDefenderPE — Patch Notes — Release V1.40 *by Iudex Industries* --- ## ⚠ Critical **FastPass encryption upgraded to authenticated encryption.** > Action required: delete your existing FastPass.txt before deploying — old entries are incompatible. --- ## Bug Fixes - **FastPass** — Encryption vulnerability patched; tampering is now detected on load. - **Login tracking** — Race condition under concurrent load resolved. - **Queue** — Stale entries no longer re-injected after expiry. - **IPv6** — Connections now correctly grouped by subnet for rate limiting. - **HandshakeListener** — Connections failing early checks no longer proceed to login. - **HandshakeListener** — Internal maps are now bounded and cleaned up under attack conditions. - **HPV port check** — Clients can no longer self-report an arbitrary port to bypass the check. - **Protocol Update** — Updated The Protocol Check to Match the Current Protocol. --- ## New Checks — 4 added (18 total) - **Check15** — UUID version & variant fingerprinting. - **Check16** — Username entropy analysis. - **Check17** — Edit-distance clustering to catch near-identical name swarms. - **Check18** — Degenerate name pattern detection.
release

DDoSDefender Release V1.40

V1.4
22 июн. 2026 г.23Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6bukkit, paper, purpur, spigot
Скачать
Что нового
# DDoSDefenderPE — Patch Notes — Release V1.40 *by Iudex Industries* --- ## ⚠ Critical **FastPass encryption upgraded to authenticated encryption.** > Action required: delete your existing FastPass.txt before deploying — old entries are incompatible. --- ## Bug Fixes - **FastPass** — Encryption vulnerability patched; tampering is now detected on load. - **Login tracking** — Race condition under concurrent load resolved. - **Queue** — Stale entries no longer re-injected after expiry. - **IPv6** — Connections now correctly grouped by subnet for rate limiting. - **HandshakeListener** — Connections failing early checks no longer proceed to login. - **HandshakeListener** — Internal maps are now bounded and cleaned up under attack conditions. - **HPV port check** — Clients can no longer self-report an arbitrary port to bypass the check. - **Protocol Update** — Updated The Protocol Check to Match the Current Protocol. --- ## New Checks — 4 added (18 total) - **Check15** — UUID version & variant fingerprinting. - **Check16** — Username entropy analysis. - **Check17** — Edit-distance clustering to catch near-identical name swarms. - **Check18** — Degenerate name pattern detection.