-
Bug
-
Resolution: Unresolved
-
Critical
-
None
After the number of bad authentication attempts has been exceeded the authentication is disabled for the given username. Any subsequent valid authentication attempts are unsuccessful (which is intended behaviour).
However, there is inconsistent behavior for SASL vs HTTP when attempting to authenticate with good password while authentication is disabled:
- For SASL, the lockout timeout is prolonged with such attempts ("Disabling authentication for ..." is logged).
- for HTTP the lockout timeout is driven by the last unsuccessful authentication attempt exceeding the max-failed-attempts ("Disabling authentication for ..." is not logged in this case). The following is logged:
2026-01-15 12:39:12,261 TRACE [org.wildfly.security] (management task-2) Created HttpServerAuthenticationMechanism [org.wildfly.security.auth.server.SecurityIdentityServerMechanismFactory$1@5b9620f2] for mechanism [DIGEST] 2026-01-15 12:39:12,262 TRACE [org.wildfly.security] (management task-2) Handling SocketAddressCallback 2026-01-15 12:39:12,262 TRACE [org.wildfly.security] (management task-2) Handling MechanismInformationCallback type='HTTP' name='DIGEST' host-name='localhost' protocol='http' 2026-01-15 12:39:12,262 TRACE [org.wildfly.security] (management task-2) Handling AvailableRealmsCallback: realms = [ManagementRealm] 2026-01-15 12:39:12,262 TRACE [org.wildfly.security.http.digest] (management task-2) New nonce generated AAAAFQAAqN8XdPt7txbq1f3gp01sxZ7ks28eWY4MVIPWR+vG6jBLmrKJFE8=, using seed 4d616e6167656d656e745265616c6d 2026-01-15 12:39:12,265 TRACE [org.wildfly.security] (management task-2) Created HttpServerAuthenticationMechanism [org.wildfly.security.auth.server.SecurityIdentityServerMechanismFactory$1@4e183644] for mechanism [DIGEST] 2026-01-15 12:39:12,265 TRACE [org.wildfly.security] (management task-2) Handling SocketAddressCallback 2026-01-15 12:39:12,265 TRACE [org.wildfly.security] (management task-2) Handling MechanismInformationCallback type='HTTP' name='DIGEST' host-name='localhost' protocol='http' 2026-01-15 12:39:12,266 TRACE [org.wildfly.security.http.digest] (management task-2) Currently 13 nonces being tracked 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling AvailableRealmsCallback: realms = [ManagementRealm] 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling AvailableRealmsCallback: realms = [ManagementRealm] 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling RealmCallback: selected = [ManagementRealm] 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling NameCallback: authenticationName = testOne 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Principal assigning: [testOne], pre-realm rewritten: [testOne], realm name: [ManagementRealm], post-realm rewritten: [testOne], realm rewritten: [testOne] 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling CredentialCallback: failed to obtain credential 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling RealmCallback: selected = [ManagementRealm] 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling NameCallback: authenticationName = testOne 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling CredentialCallback: failed to obtain credential 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling RealmCallback: selected = [ManagementRealm] 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling NameCallback: authenticationName = testOne 2026-01-15 12:39:12,266 TRACE [org.wildfly.security] (management task-2) Handling PasswordCallback: PasswordCredential may not be supported 2026-01-15 12:39:12,266 TRACE [org.wildfly.security.http.digest] (management task-2) Failed to parse or validate the response: org.wildfly.security.mechanism.AuthenticationMechanismException: ELY05051: Callback handler does not support credential acquisition at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.mechanism.digest.PasswordDigestObtainer.getSaltedPasswordFromPasswordCallback(PasswordDigestObtainer.java:344) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.mechanism.digest.PasswordDigestObtainer.handleUserRealmPasswordCallbacks(PasswordDigestObtainer.java:143) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.http.digest.DigestAuthenticationMechanism.getH_A1(DigestAuthenticationMechanism.java:332) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.http.digest.DigestAuthenticationMechanism.validateResponse(DigestAuthenticationMechanism.java:220) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.http.digest.DigestAuthenticationMechanism.evaluateRequest(DigestAuthenticationMechanism.java:127) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.http.util.SetMechanismInformationMechanismFactory$1.evaluateRequest(SetMechanismInformationMechanismFactory.java:119) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.http.util.SocketAddressCallbackServerMechanismFactory$1.evaluateRequest(SocketAddressCallbackServerMechanismFactory.java:82) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.http.util.SetRequestInformationCallbackMechanismFactory$1.evaluateRequest(SetRequestInformationCallbackMechanismFactory.java:84) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.auth.server.SecurityIdentityServerMechanismFactory$1.evaluateRequest(SecurityIdentityServerMechanismFactory.java:86) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.http.HttpAuthenticator$AuthenticationExchange.authenticate(HttpAuthenticator.java:331) at org.wildfly.security.elytron-base@2.8.0.CR1-SNAPSHOT//org.wildfly.security.http.HttpAuthenticator.authenticate(HttpAuthenticator.java:93) at org.wildfly.security.elytron-web.undertow-server@4.1.2.Final//org.wildfly.elytron.web.undertow.server.SecurityContextImpl.authenticate(SecurityContextImpl.java:107) at io.undertow.core@2.3.20.Final//io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:50) at io.undertow.core@2.3.20.Final//io.undertow.server.Connectors.executeRootHandler(Connectors.java:395) at io.undertow.core@2.3.20.Final//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:900) at org.jboss.threads@3.9.2//org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) at org.jboss.threads@3.9.2//org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2651) at org.jboss.threads@3.9.2//org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2630) at org.jboss.threads@3.9.2//org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1622) at org.jboss.threads@3.9.2//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589) at org.jboss.xnio@3.8.16.Final//org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: org.wildfly.security.auth.callback.FastUnsupportedCallbackException: javax.security.auth.callback.PasswordCallback@32006e18 2026-01-15 12:39:12,267 TRACE [org.wildfly.security] (management task-2) Handling AvailableRealmsCallback: realms = [ManagementRealm] 2026-01-15 12:39:12,267 TRACE [org.wildfly.security.http.digest] (management task-2) New nonce generated AAAAFgAAqN8XtyzYXVuCPZaFGXTkYhmmqn0l1Do+ylgW+0Uhhp0Gi5DG1yI=, using seed 4d616e6167656d656e745265616c6d
- relates to
-
WFCORE-7192 CVE-2025-23368 WildFly Elytron Brute Force Authentication Attack
-
- Coding In Progress
-