nextcloud / nextcloud/server

Disabled users throw constant fatal frror in logs: `ServiceUnavailable` + `LoginException`

Open
#22,758 22 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop 25-feedback bug feature: authentication feature: dav
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

I deactivated a user on my installation and this is also the only deactivated user. Apparently a device of said user is still configured to sync and therefore tries to log in. The server log shows fatal errors. If this is standard behaviour, I think that is a bug. Deactivating a user is a standard procedure. Hence a login attempt is not an error. Maybe it justifies some debug / ingo logging, but not to throw an exception.

(And the german "Benutzer deaktiviert" does not belong there either. ^^)

[webdav] Fatal: Sabre\DAV\Exception\ServiceUnavailable: OC\User\LoginException: Benutzer deaktiviert at <<closure>>

0. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php line 193
   OCA\DAV\Connector\Sabre\Auth->check(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
1. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php line 144
   Sabre\DAV\Auth\Plugin->check(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
2. /var/www/virtual/eppcloud/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
   Sabre\DAV\Auth\Plugin->beforeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
3. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Server.php line 458
   Sabre\DAV\Server->emit("beforeMethod:PROPFIND", [Sabre\HTTP\Requ ... }])
4. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Server.php line 251
   Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
5. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Server.php line 319
   Sabre\DAV\Server->start()
6. /var/www/virtual/eppcloud/html/apps/dav/lib/Server.php line 320
   Sabre\DAV\Server->exec()
7. /var/www/virtual/eppcloud/html/apps/dav/appinfo/v2/remote.php line 35
   OCA\DAV\Server->exec()
8. /var/www/virtual/eppcloud/html/remote.php line 167
   require_once("/var/www/virtua ... p")

PROPFIND /remote.php/dav/principals/users/[deactivated-user]/
from 2a01:c23:7c4f:8400:5415:34a9:5636:47ed at 2020-09-09T20:49:48+00:00

[no app in context] Error: OC\User\LoginException: Benutzer deaktiviert at <<closure>>

 0. /var/www/virtual/eppcloud/html/lib/private/User/Session.php line 617
    OC\User\Session->completeLogin("*** sensitive parameters replaced ***")
 1. /var/www/virtual/eppcloud/html/lib/private/User/Session.php line 366
    OC\User\Session->loginWithPassword("*** sensitive parameters replaced ***")
 2. /var/www/virtual/eppcloud/html/lib/private/User/Session.php line 459
    OC\User\Session->login("*** sensitive parameters replaced ***")
 3. /var/www/virtual/eppcloud/html/apps/dav/lib/Connector/Sabre/Auth.php line 131
    OC\User\Session->logClientIn("*** sensitive parameters replaced ***")
 4. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php line 106
    OCA\DAV\Connector\Sabre\Auth->validateUserPass("*** sensitive parameters replaced ***")
 5. /var/www/virtual/eppcloud/html/apps/dav/lib/Connector/Sabre/Auth.php line 254
    Sabre\DAV\Auth\Backend\AbstractBasic->check(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
 6. /var/www/virtual/eppcloud/html/apps/dav/lib/Connector/Sabre/Auth.php line 156
    OCA\DAV\Connector\Sabre\Auth->auth(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
 7. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php line 193
    OCA\DAV\Connector\Sabre\Auth->check(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
 8. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php line 144
    Sabre\DAV\Auth\Plugin->check(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
 9. /var/www/virtual/eppcloud/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\Auth\Plugin->beforeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
10. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Server.php line 458
    Sabre\DAV\Server->emit("beforeMethod:PROPFIND", [Sabre\HTTP\Requ ... }])
11. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Server.php line 251
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
12. /var/www/virtual/eppcloud/html/3rdparty/sabre/dav/lib/DAV/Server.php line 319
    Sabre\DAV\Server->start()
13. /var/www/virtual/eppcloud/html/apps/dav/lib/Server.php line 320
    Sabre\DAV\Server->exec()
14. /var/www/virtual/eppcloud/html/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
15. /var/www/virtual/eppcloud/html/remote.php line 167
    require_once("/var/www/virtua ... p")

PROPFIND /remote.php/dav/principals/users/[deactivated-user]/
from 2a01:c23:7c4f:8400:5415:34a9:5636:47ed at 2020-09-09T20:49:48+00:00

Server configuration detail

Operating system: Linux 2.6.32-754.15.3.el6.x86_64 #1 SMP Tue Jun 18 16:25:32 UTC 2019 x86_64

Webserver: Apache/2.2.15 (CentOS) (cgi-fcgi)

Database: mysql 5.1.73

PHP version: 7.2.31

Modules loaded: Core, date, libxml, openssl, pcre, sqlite3, zlib, bcmath, bz2, calendar, ctype, curl, dom, hash, fileinfo, filter, ftp, gd, gettext, gmp, SPL, iconv, session, intl, json, ldap, mbstring, standard, mysqlnd, pcntl, mysqli, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, Reflection, imap, shmop, SimpleXML, soap, sockets, exif, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, cgi-fcgi, redis, imagick, Zend OPcache

Nextcloud version: 19.0.2 - 19.0.2.2

Updated from an older Nextcloud/ownCloud or fresh install: updated

Where did you install Nextcloud from: updater

Signing status

Array ( )

List of activated apps

Enabled:

  • accessibility: 1.5.0
  • activity: 2.12.0
  • admin_audit: 1.9.0
  • bruteforcesettings: 2.0.1
  • calendar: 2.0.4
  • cloud_federation_api: 1.2.0
  • comments: 1.9.0
  • contacts: 3.3.0
  • contactsinteraction: 1.0.0
  • dav: 1.15.0
  • federatedfilesharing: 1.9.0
  • federation: 1.9.0
  • files: 1.14.0
  • files_external: 1.10.0
  • files_pdfviewer: 1.8.0
  • files_rightclick: 0.16.0
  • files_sharing: 1.11.0
  • files_trashbin: 1.9.0
  • files_versions: 1.12.0
  • files_videoplayer: 1.8.0
  • firstrunwizard: 2.8.0
  • logreader: 2.4.0
  • lookup_server_connector: 1.7.0
  • mail: 1.4.1
  • nextcloud_announcements: 1.8.0
  • notifications: 2.7.0
  • oauth2: 1.7.0
  • password_policy: 1.9.1
  • photos: 1.1.0
  • polls: 1.4.3
  • privacy: 1.3.0
  • provisioning_api: 1.9.0
  • recommendations: 0.7.0
  • serverinfo: 1.9.0
  • settings: 1.1.0
  • sharebymail: 1.9.0
  • support: 1.2.1
  • survey_client: 1.7.0
  • tasks: 0.13.3
  • text: 3.0.1
  • theming: 1.10.0
  • twofactor_backupcodes: 1.8.0
  • twofactor_totp: 5.0.0
  • twofactor_u2f: 6.0.0
  • updatenotification: 1.9.0
  • viewer: 1.3.0
  • workflowengine: 2.1.0
    Disabled:
  • encryption
  • files_markdown
  • news
  • notes
  • systemtags
  • user_ldap
Configuration (config/config.php)

{
"instanceid": "REMOVED SENSITIVE VALUE",
"passwordsalt": "REMOVED SENSITIVE VALUE",
"secret": "REMOVED SENSITIVE VALUE",
"trusted_domains": [
"REMOVED SENSITIVE VALUE"
],
"datadirectory": "REMOVED SENSITIVE VALUE",
"dbtype": "mysql",
"version": "19.0.2.2",
"dbname": "REMOVED SENSITIVE VALUE",
"dbhost": "REMOVED SENSITIVE VALUE",
"dbtableprefix": "oc_",
"dbuser": "REMOVED SENSITIVE VALUE",
"dbpassword": "REMOVED SENSITIVE VALUE",
"logtimezone": "UTC",
"installed": true,
"loglevel": 0,
"filelocking.enabled": "true",
"memcache.locking": "\OC\Memcache\Redis",
"memcache.local": "\OC\Memcache\Redis",
"redis": {
"host": "REMOVED SENSITIVE VALUE",
"port": 0,
"timeout": 0
},
"forcessl": true,
"mail_from_address": "REMOVED SENSITIVE VALUE",
"mail_smtpmode": "smtp",
"mail_domain": "REMOVED SENSITIVE VALUE",
"maintenance": false,
"updater.release.channel": "stable",
"debug": false,
"appstore.experimental.enabled": true,
"theme": "",
"log_rotate_size": 104857600,
"overwrite.cli.url": "REMOVED SENSITIVE VALUE",
"htaccess.RewriteBase": "/",
"htaccess.IgnoreFrontController": true,
"mail_smtpsecure": "ssl",
"mail_smtpauthtype": "LOGIN",
"mail_smtpauth": 1,
"mail_smtphost": "REMOVED SENSITIVE VALUE",
"mail_smtpport": "465",
"mail_smtpname": "REMOVED SENSITIVE VALUE",
"mail_smtppassword": "REMOVED SENSITIVE VALUE",
"twofactor_enforced": "true",
"twofactor_enforced_groups": [
"admin"
],
"twofactor_enforced_excluded_groups": [
"Familie",
"test"
],
"preview_max_x": "2048",
"preview_max_y": "2048",
"jpeg_quality": "60"
}

External storages: yes

External storage configuration

Encryption: no

User-backends:

OC\User\Database

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with apps/dav/lib/Connector/Sabre/Auth.php and lib/private/User/Session.php, then reproduce the DAV PROPFIND request using a deactivated user's credentials. Trace how the disabled-user LoginException becomes a fatal ServiceUnavailable log entry. Done means the expected authentication response remains intact without repeated fatal errors or the German exception text in server logs.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
authentication, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.