nilsteampassnet / TeamPass

Collaborative Passwords Manager
https://www.teampass.net
1.66k stars 543 forks source link

recover passwords from db backup : item query infinitly loading #4052

Closed CrunchySlime closed 8 months ago

CrunchySlime commented 8 months ago

Steps to reproduce

  1. backup db using the admin interface
  2. reinstall teampass (same version 3.0.0.22)
  3. restore backup

Expected behaviour

get to see the passwords

Actual behaviour

I get an infinite loading page (screenshot : https://i.imgur.com/u6T3dEd.png)

Server configuration

Operating system: debian 12

Web server: apache2

Database: mariadb

PHP version: 8.2

Teampass version: 3.0.0.22

Teampass configuration file:

Updated from an older Teampass or fresh install: fresh install PLEASE attach to this issue the file /includes/config/tp.config.php.

<?php
global $SETTINGS;
$SETTINGS = array (
    'max_latest_items' => '10',
    'enable_favourites' => '1',
    'show_last_items' => '1',
    'enable_pf_feature' => '0',
    'log_connections' => '1',
    'log_accessed' => '1',
    'time_format' => 'H:i:s',
    'date_format' => 'd/m/Y',
    'duplicate_folder' => '0',
    'item_duplicate_in_same_folder' => '0',
    'duplicate_item' => '0',
    'number_of_used_pw' => '3',
    'manager_edit' => '1',
    'cpassman_dir' => '/var/www/html/teampass',
    'cpassman_url' => 'http://192.168.1.71/teampass',
    'favicon' => 'http://192.168.1.71/teampass/favicon.ico',
    'path_to_upload_folder' => '/var/www/html/teampass/upload',
    'path_to_files_folder' => '/var/www/html/teampass/files',
    'url_to_files_folder' => 'http://192.168.1.71/teampass/files',
    'activate_expiration' => '0',
    'pw_life_duration' => '0',
    'maintenance_mode' => '0',
    'enable_sts' => '0',
    'encryptClientServer' => '1',
    'teampass_version' => '3.1.0',
    'ldap_mode' => '0',
    'ldap_type' => '0',
    'ldap_suffix' => '0',
    'ldap_domain_dn' => '0',
    'ldap_domain_controler' => '0',
    'ldap_user_attribute' => '0',
    'ldap_ssl' => '0',
    'ldap_tls' => '0',
    'ldap_search_base' => '0',
    'ldap_port' => '389',
    'richtext' => '0',
    'allow_print' => '0',
    'roles_allowed_to_print' => '0',
    'show_description' => '1',
    'anyone_can_modify' => '0',
    'anyone_can_modify_bydefault' => '0',
    'nb_bad_authentication' => '0',
    'utf8_enabled' => '1',
    'restricted_to' => '0',
    'restricted_to_roles' => '0',
    'enable_send_email_on_user_login' => '0',
    'enable_user_can_create_folders' => '0',
    'insert_manual_entry_item_history' => '0',
    'enable_kb' => '0',
    'enable_email_notification_on_item_shown' => '0',
    'enable_email_notification_on_user_pw_change' => '0',
    'custom_logo' => '',
    'custom_login_text' => '',
    'default_language' => 'english',
    'send_stats' => '0',
    'send_statistics_items' => 'stat_country;stat_users;stat_items;stat_items_shared;stat_folders;stat_folders_shared;stat_admins;stat_managers;stat_ro;stat_mysqlversion;stat_phpversion;stat_teampassversion;stat_languages;stat_kb;stat_suggestion;stat_customfields;stat_api;stat_2fa;stat_agses;stat_duo;stat_ldap;stat_syslog;stat_stricthttps;stat_fav;stat_pf;',
    'send_stats_time' => '1705139824',
    'get_tp_info' => '1',
    'send_mail_on_user_login' => '0',
    'nb_items_by_query' => 'auto',
    'enable_delete_after_consultation' => '0',
    'enable_personal_saltkey_cookie' => '0',
    'personal_saltkey_cookie_duration' => '31',
    'email_smtp_server' => '',
    'email_smtp_auth' => '',
    'email_auth_username' => '',
    'email_auth_pwd' => '',
    'email_port' => '',
    'email_security' => '',
    'email_server_url' => '',
    'email_from' => '',
    'email_from_name' => '',
    'pwd_maximum_length' => '40',
    'google_authentication' => '0',
    'delay_item_edition' => '0',
    'allow_import' => '0',
    'proxy_ip' => '',
    'proxy_port' => '',
    'upload_maxfilesize' => '10mb',
    'upload_docext' => 'doc,docx,dotx,xls,xlsx,xltx,rtf,csv,txt,pdf,ppt,pptx,pot,dotx,xltx',
    'upload_imagesext' => 'jpg,jpeg,gif,png',
    'upload_pkgext' => '7z,rar,tar,zip',
    'upload_otherext' => 'sql,xml',
    'upload_imageresize_options' => '1',
    'upload_imageresize_width' => '800',
    'upload_imageresize_height' => '600',
    'upload_imageresize_quality' => '90',
    'use_md5_password_as_salt' => '0',
    'ga_website_name' => 'TeamPass for ChangeMe',
    'api' => '0',
    'subfolder_rights_as_parent' => '0',
    'show_only_accessible_folders' => '0',
    'enable_suggestion' => '0',
    'otv_expiration_period' => '7',
    'default_session_expiration_time' => '60',
    'duo' => '0',
    'enable_server_password_change' => '0',
    'ldap_object_class' => '0',
    'bck_script_path' => '/var/www/html/teampass/backups',
    'bck_script_filename' => 'bck_teampass',
    'syslog_enable' => '0',
    'syslog_host' => 'localhost',
    'syslog_port' => '514',
    'manager_move_item' => '0',
    'create_item_without_password' => '0',
    'otv_is_enabled' => '0',
    'agses_authentication_enabled' => '0',
    'item_extra_fields' => '0',
    'saltkey_ante_2127' => 'none',
    'migration_to_2127' => 'done',
    'files_with_defuse' => 'done',
    'timezone' => 'UTC',
    'enable_attachment_encryption' => '1',
    'personal_saltkey_security_level' => '50',
    'ldap_new_user_is_administrated_by' => '0',
    'disable_show_forgot_pwd_link' => '0',
    'offline_key_level' => '0',
    'enable_http_request_login' => '0',
    'ldap_and_local_authentication' => '0',
    'secure_display_image' => '1',
    'upload_zero_byte_file' => '0',
    'upload_all_extensions_file' => '0',
    'bck_script_passkey' => '[REDACTED]',
    'admin_2fa_required' => '1',
    'password_overview_delay' => '4',
    'copy_to_clipboard_small_icons' => '1',
    'duo_ikey' => '',
    'duo_skey' => '',
    'duo_host' => '',
    'duo_failmode' => 'secure',
    'roles_allowed_to_print_select' => '',
    'clipboard_life_duration' => '30',
    'mfa_for_roles' => '',
    'tree_counters' => '0',
    'settings_offline_mode' => '0',
    'settings_tree_counters' => '0',
    'enable_massive_move_delete' => '0',
    'email_debug_level' => '0',
    'ga_reset_by_user' => '',
    'onthefly-backup-key' => '',
    'onthefly-restore-key' => '[REDACTED]',
    'ldap_user_dn_attribute' => '',
    'ldap_dn_additional_user_dn' => '',
    'ldap_user_object_filter' => '',
    'ldap_bdn' => '',
    'ldap_hosts' => '',
    'ldap_password' => '',
    'ldap_username' => '',
    'api_token_duration' => '60',
    'enable_tasks_manager' => '1',
    'task_maximum_run_time' => '300',
    'tasks_manager_refreshing_period' => '20',
    'maximum_number_of_items_to_treat' => '100',
    'ldap_tls_certifacte_check' => 'LDAP_OPT_X_TLS_NEVER',
    'enable_tasks_log' => '0',
    'upgrade_timestamp' => '1707731824',
    'enable_ad_users_with_ad_groups' => '0',
    'enable_ad_user_auto_creation' => '0',
    'ldap_group_object_filter' => '',
    'ldap_guid_attibute' => 'objectguid',
    'sending_emails_job_frequency' => '2',
    'user_keys_job_frequency' => '1',
    'items_statistics_job_frequency' => '5',
    'users_personal_folder_task' => '',
    'clean_orphan_objects_task' => '',
    'purge_temporary_files_task' => '',
    'rebuild_config_file' => '',
    'reload_cache_table_task' => '',
    'maximum_session_expiration_time' => '60',
    'items_ops_job_frequency' => '1',
    'enable_refresh_task_last_execution' => '1',
    'cpassman_version' => '3.0.0.22',
);

Client configuration

Browser: firefox 122.0.1

Operating system:

Logs

Web server error log (/var/log/apache2/error.log) when loading the password page.

[Mon Feb 12 14:30:18.992291 2024] [php:error] [pid 17648] [client 192.168.1.144:50242] PHP Fatal error:  Uncaught mysqli_sql_exception: Unknown column 'nb_items_in_folder' in 'field list' in /var/www/html/teampass/includes/libraries/Tree/NestedTree/NestedTree.php:381\nStack trace:\n#0 /var/www/html/teampass/includes/libraries/Tree/NestedTree/NestedTree.php(381): mysqli_query()\n#1 /var/www/html/teampass/sources/tree.php(198): Tree\\NestedTree\\NestedTree->getTreeWithChildren()\n#2 {main}\n  thrown in /var/www/html/teampass/includes/libraries/Tree/NestedTree/NestedTree.php on line 381, referer: http://192.168.1.71/teampass/index.php?page=items
[Mon Feb 12 14:30:20.565401 2024] [php:error] [pid 17800] [client 192.168.1.144:50254] PHP Fatal error:  Uncaught mysqli_sql_exception: Unknown column 'nb_items_in_folder' in 'field list' in /var/www/html/teampass/includes/libraries/Tree/NestedTree/NestedTree.php:381\nStack trace:\n#0 /var/www/html/teampass/includes/libraries/Tree/NestedTree/NestedTree.php(381): mysqli_query()\n#1 /var/www/html/teampass/includes/libraries/Tree/NestedTree/NestedTree.php(414): Tree\\NestedTree\\NestedTree->getTreeWithChildren()\n#2 /var/www/html/teampass/sources/items.queries.php(6069): Tree\\NestedTree\\NestedTree->rebuild()\n#3 {main}\n  thrown in /var/www/html/teampass/includes/libraries/Tree/NestedTree/NestedTree.php on line 381, referer: http://192.168.1.71/teampass/index.php?page=items

Log from the web-browser developer console (CTRL + SHIFT + i)

User information index.php:3334:17
Object { sessionDuration: 3600, sessionStartTimestamp: 1707744307376, sessionKey: "[REDACTED]", user_id: 10000005, shown_warning_unsuccessful_login: true, nb_unsuccessful_logins: null, special: "none", auth_type: "ldap", location_stored: 1, user_admin: 0, … }
index.php:3335:17
Object { id: "#", parent: null, parents: [], children: [], children_d: [], state: {…} }
index.php:3354:33
Loading settings result: index.php:2815:29
Object { enable_favourites: "1", enable_pf_feature: "0", ldap_user_attribute: "0", google_authentication: "0", duo: "0", agses_authentication_enabled: "0", enable_attachment_encryption: "1", personal_saltkey_security_level: "50", copy_to_clipboard_small_icons: "1", clipboard_life_duration: "30", … }
index.php:2816:29
Refresh last item seen result index.php:2948:29
Object { error: "", existing_suggestions: 0, html_json: (10) […] }
index.php:2949:29
Object { error: false, message: "", queryResults: {…} }
index.php:1638:37
Refresh visible folders index.php:6366:21
Object { force_refresh_cache: false }
index.php:6367:21
XHRPOST
http://192.168.1.71/teampass/sources/items.queries.php

stacktrace of items.queries.php

send
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:82714](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
ajax
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:78291](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
S[i]
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:80344](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
refreshVisibleFolders
[http://192.168.1.71/teampass/index.php:6370:11](http://192.168.1.71/teampass/index.php?page=items)
<anonymous>
[http://192.168.1.71/teampass/index.php:3546:9](http://192.168.1.71/teampass/index.php?page=items)
dequeue
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:35198](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
dequeue/<
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:35218](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
(Async: setTimeout handler) S.fn.delay/<
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:64960](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
dequeue
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:35198](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
dequeue/<
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:35727](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
each
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:3003](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
each
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:1481](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
dequeue
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:35709](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
countdown/<
[http://192.168.1.71/teampass/includes/js/functions.js:84:17](http://192.168.1.71/teampass/includes/js/functions.js)
dequeue
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:35198](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)
dequeue/<
[http://192.168.1.71/teampass/plugins/jquery/jquery.min.js:2:35218](http://192.168.1.71/teampass/plugins/jquery/jquery.min.js)

and it's stuck on items queries

During that migration I have unfortunately lost the content of /var/www/html including salkeys

CrunchySlime commented 8 months ago

fixed it commenting the following elements in line 60 of includes/libraries/Tree/NestedTree/NestedTree.php

'nleft', 'nright', 'nlevel', 'personal_folder', 'renewal_period', 'bloquer_modification', 'bloquer_creation', 'fa_icon', 'fa_icon_selected', /*'nb_items_in_folder', 'nb_subfolders', 'nb_items_in_subfolders'*/);