Skip to content

35.0.0: capabilities request (okhttp) sends user ID instead of login name → login failures and account lockouts for LDAP users #17707

Description

@tux-sourceish

⚠️ Before posting ⚠️

  • This is a bug, not a question or an enhancement.
  • I've searched for similar issues and didn't find a duplicate.
  • I've written a clear and descriptive title for this issue, not just "Bug" or "Crash".
  • I agree to follow Nextcloud's Code of Conduct.

Steps to reproduce

  1. Nextcloud server with LDAP/AD user backend, internal username = UUID (ldapExpertUsernameAttr empty), users log in with their sAMAccountName.
  2. Install Nextcloud Android 35.0.0 and log in via login flow with the sAMAccountName.
  3. Use the app over a network that is not whitelisted for brute-force protection (e.g. mobile data) and open a few files.
  4. Watch nextcloud.log.

Impact

  • The failed logins trigger brute-force throttling → TooManyRequests on WebDAV → the app becomes unusable on mobile networks.
  • With password_policy (maximumLoginAttempts), accounts get disabled → HTTP 503 → the app shows "maintenance mode". Our hoster counted 137 automatic account deactivations across six accounts within ten days.
  • Removing the account and setting it up from scratch does not help: a freshly issued token fails on the very first capabilities request.

Environment

  • App: 35.0.0 (Google Play) fails; 34.1.1 (APK from GitHub releases) works
  • Server: 34.0.4.1 (also reported with server 35.0.0)
  • Devices:

Related

Server-side report with further details: nextcloud/server#64555

Expected behaviour

The capabilities request uses the login name (as the token was issued for it), like 34.1.1 does.

Actual behaviour

{"level":3,"url":"/ocs/v2.php/cloud/capabilities","message":"App token login name does not match","userAgent":"okhttp/5.5.0","version":"34.0.4.1","data":{"tokenLoginName":"jdoe","sessionLoginName":"AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE"}}

Android version

Android 16 and Android 13

Device brand and model

Samsung Galaxy Tab S9 FE+ 5G, Android 16, managed via Android Enterprise; the 34.1.1 comparison test was done on Hotwav Cyber 15, Android 13

Stock or custom OS?

Stock

Nextcloud android app version

  • App: 35.0.0 (Google Play) fails; 34.1.1 (APK from GitHub releases) works

Nextcloud server version

  • Server: 34.0.4.1 (also reported with server 35.0.0)

Using a reverse proxy?

No

Android logs

No response

Server error logs

Additional information

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions