Tags
Creators
Details
All versions
1.0.1
Release
AuthCore 1.0.13 days ago 84
Uploaded by
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
Platform
Fabric
Supported environments
Dedicated servers only
Required content
Unavailable version
Changes
[1.0.1] - 2026-10-22
Security audit release: lobby command-gate bypass, TOTP replay, second-factor races, async password verification, database hardening, plus the 26.1/26.2 join-crash fix.
Security audit fixes (2026-10-21)
- High - lobby command gate bypass fixed.
Security.isCommandAllowedInLobbyderived the command root from the text after the first/anywhere in the string. Commands arrive without a leading slash, somsg bob hi /loginwas judged as the always-allowed rootloginand any command could be smuggled past the whitelist/blacklist. Only a leading slash is now stripped. - TOTP replay protection. An accepted TOTP code can no longer be reused inside its validity window (RFC 6238 §5.2). A player who just logged in must wait for the next code to log in again.
- Second-factor atomicity. Recovery-code consumption, email OTP and email-recovery codes are now single-use and attempt-capped under concurrent submissions.
/loginno longer hashes on the server thread. The Argon2/bcrypt check runs on the IO executor (max 4 concurrent, one in flight per account) and its outcome is applied back on the server thread, where the lobby state is re-validated first (the player may have disconnected or authenticated in the meantime). Wrong-password spam can no longer stall the server.- No weak algorithms for new passwords.
md5,sha-256,sha-512and unknown values ofpassword-hash-algorithmare replaced byargon2when a password is created or changed (registration,/changepassword, admin and web-panel resets); the stored algorithm label always matches the hash. Existing legacy hashes still verify and are upgraded on login. - Hardening: the offline-UUID check no longer depends on the platform default charset, and two admin/history queries now close their JDBC statements.
- Database.
Userwrites (upsert + extended columns) run in one transaction, JDBC statements/result sets are closed, account deletion matches by uuid or case-insensitive username, and lookup indexes (LOWER(username),LOGIN_HISTORY.uuid) are created idempotently on boot (best-effort; failures only log at debug).
Minecraft 26.1/26.2 join crash fixed (2026-10-21)
- Fixed
NoSuchMethodError: ServerPlayer.setPermanentlyInvulnerable(boolean)that crashed Fabric/NeoForge 26.1 and 26.2 servers the moment a player joined (issue #10): the 26.3-built G3 jar is one artifact for the whole open-ended>=26.1range, and the compile-time Stonecutter switch always baked the 26.3-renamed setter into its bytecode. The limbo damage shield now dispatches betweensetPermanentlyInvulnerable(26.3+) andsetInvulnerable(26.2 and older) at runtime viaCompat(Compat.setInvulnerable/Compat.isInvulnerable) - the same single-jar-per-range pattern assetFallDistance. - The limbo snapshot now captures the PRE-lobby invulnerability flag and restores it on unlock, so a player who was already invulnerable before the limbo keeps that state after authenticating. The crash-safe limbo snapshot file persists the flag as well (older files without the key clear the flag, as before).
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:qs5rvacf:srnkmdt9"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:qs5rvacf:srnkmdt9"
}

