nilsteampassnet / TeamPass

Collaborative Passwords Manager
https://www.teampass.net
1.63k stars 532 forks source link

Items disappeared from Password menu. We can only see folders and new items. #4201

Open minosso opened 1 month ago

minosso commented 1 month ago

I dont know how to reproduce the issue. Everything was working fine since I installed Teampass 2 weeks ago, and suddenly we cannot see any Items anymore. We made a clean install with docker-compose and imported a keepass file.

Expected behaviour

We wanna continue seeing all items from our database from Password menu.

Actual behaviour

Items disappeared from "Password" menu. We can only see folders and new items.

Server configuration

Operating system: Ubuntu 24.04 LTS Web server: docker image: jwilder/nginx-proxy:alpine (nginx version: nginx/1.26.0) Database: docker image: yobasystems/alpine-mariadb:latest (mariadb Ver 15.1 Distrib 10.11.6-MariaDB, for Linux (x86_64) using readline 5.1) PHP version: docker image: dormancygrace/teampass:latest (PHP 8.2.7) Teampass version: version 3.1.2.44

Teampass configuration file: global $SETTINGS; $SETTINGS = array ( 'max_latest_items' => '10', 'enable_favourites' => '1', 'show_last_items' => '1', 'enable_pf_feature' => '1', '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', 'cpassman_url' => 'https://teampass.company.io', 'favicon' => 'https://teampass.company.io/favicon.ico', 'path_to_upload_folder' => '/var/www/html/upload', 'path_to_files_folder' => '/var/www/html/files', 'url_to_files_folder' => 'https://teampass.company.io/files', 'activate_expiration' => '0', 'pw_life_duration' => '0', 'maintenance_mode' => '0', 'enable_sts' => '0', 'encryptClientServer' => '1', 'teampass_version' => '3.1.2', 'ldap_mode' => '1', 'ldap_type' => 'ActiveDirectory', 'ldap_user_attribute' => 'samaccountname', 'ldap_ssl' => '0', 'ldap_tls' => '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' => '4', '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' => '1', 'custom_logo' => 'includes/images/company-4k-negro-sem-fundo.png', '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' => '1712258533', 'get_tp_info' => '1', 'send_mail_on_user_login' => '0', 'sending_emails' => '0', 'nb_items_by_query' => 'auto', 'enable_delete_after_consultation' => '0', 'enable_personal_saltkey_cookie' => '0', 'personal_saltkey_cookie_duration' => '31', 'email_smtp_server' => 'company-com.mail.protection.outlook.com', 'email_smtp_auth' => '', 'email_auth_username' => '', 'email_auth_pwd' => '', 'email_port' => '25', 'email_security' => 'tls', 'email_server_url' => '', 'email_from' => 'teampass@company.io', 'email_from_name' => 'teampass', 'pwd_maximum_length' => '40', 'google_authentication' => '1', '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,png', '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', 'api' => '0', 'subfolder_rights_as_parent' => '1', 'show_only_accessible_folders' => '1', 'enable_suggestion' => '0', 'otv_expiration_period' => '1', 'default_session_expiration_time' => '60', 'duo' => '0', 'enable_server_password_change' => '0', 'bck_script_path' => '/var/www/html/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' => 'Europe/Lisbon', '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' => '1', 'secure_display_image' => '1', 'upload_zero_byte_file' => '1', 'upload_all_extensions_file' => '1', 'bck_script_passkey' => '*', 'admin_2fa_required' => '0', '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' => '1', 'settings_offline_mode' => '0', 'settings_tree_counters' => '0', 'enable_massive_move_delete' => '0', 'email_debug_level' => '0', 'ga_reset_by_user' => '1', 'onthefly-backup-key' => '', 'onthefly-restore-key' => '', 'ldap_user_dn_attribute' => 'distinguishedname', 'ldap_dn_additional_user_dn' => '', 'ldap_user_object_filter' => '(&(objectClass=user)(!(useraccountcontrol:1.2.840.113556.1.4.803:=2))(|(samaccountname=ldapconfig)))', 'ldap_bdn' => 'dc=company,dc=io', 'ldap_hosts' => 'x.x.x.x', 'ldap_password' => '*****', 'ldap_username' => 'ldapconfig', 'api_token_duration' => '1', 'last_folder_change' => '', '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' => '1', 'upgrade_timestamp' => '1714850533', 'enable_ad_users_with_ad_groups' => '0', 'enable_ad_user_auto_creation' => '0', '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', 'ldap_group_objectclasses_attibute' => 'top', 'pwd_default_length' => '14', 'tasks_log_retention_delay' => '90', 'oauth2_enabled' => '0', 'oauth2_client_id' => '', 'oauth2_client_secret' => '', 'oauth2_client_endpoint' => '', 'oauth2_client_token' => '', 'oauth2_client_scopes' => 'openid,profile,email', 'oauth2_client_appname' => 'Login with Azure', 'max_last_items' => '15', 'otv_subdomain' => 'company.io',

**Updated from an older Teampass or fresh install: fresh install

Client configuration

**Browser: same behavior from any browser - chrome, firefox, edge, etc.

Operating system:

Logs

Web server error log: which log file?

Log from the web-browser developer console (CTRL + SHIFT + i): I cannot find it

password-menu--Not-ok password-menu--search_option--ok search-menu--ok

items differences at database

all items were changed to "teampass_items.inactif = 1" and "teampass_items.item_key=-1" new items has "teampass_items.inactif = 1" and "teampass_items.item_key='randomkey"

MariaDB [teampass]> select label,item_key,perso,inactif from teampass_items where inactif = 0; +--------------------+----------------------------------------------------+-------+---------+ | label | item_key | perso | inactif | +--------------------+----------------------------------------------------+-------+---------+ | Ricoh MTS | -1 | 0 | 1 | | azul e branco | d3b11660494779bb794375727b83e54441141574f251d2f44d | 1 | 0 |

tomste commented 4 weeks ago

We did have the same issue, that most of our items disappeared.

teampass version 3.1.2

After running UPDATE teampass_items set inactif=0 WHERE inactif=1 all items are back.

tomste commented 3 weeks ago

After some additional testing, it seems, that if we use the delete button in the item list, all imported passwords are set to inactive.

minosso commented 2 weeks ago

@tomste , exactly, if we change this items on DB like you said (UPDATE teampass_items set inactif=0 WHERE inactif=1), all items will appears again... but if someone delete any item, all items will returns with "inactif=1".

The issue, I think, is that all this items have "item_key = -1". In my case all this items were imported from a keepass file. New items doesn't have this issue.

This situation also origins this other issue: https://github.com/nilsteampassnet/TeamPass/issues/3813#issuecomment-2168052785

tomste commented 2 weeks ago

@minosso It is the same here. We imported the passwords from a keepass file.

So it seems that it must be related to the import.

workaround: open the item and use the delete option. That works.

tomste commented 2 weeks ago

The issue seems related to the import process of keepass.

The item_key is not generated during the import.

        DB::insert(
            prefixTable('items'),
            array(
                'label' => substr($item['label'], 0, 500),
                'description' => empty($item['comment']) === true ? '' : $item['comment'],
                'pw' => $post_password,
                'pw_iv' => '',
                'url' => empty($item['url']) === true ? '' : substr($item['url'], 0, 500),
                'id_tree' => $post_folder,
                'login' => empty($item['login']) === true ? '' : substr($item['login'], 0, 200),
                'anyone_can_modify' => $post_edit_all,
                'encryption_type' => 'teampass_aes',
            )

I created a small php script. You can try that one to create the missing keys. The file has to be placed in the root of the teampass installation. Just log in and then open the url https://teampass.server/id.php . id.zip

Regards

minosso commented 2 weeks ago

This script does not change the "item_key" field. So, doesnt solve the source problem.

The issue continue happens... after runs the script all items will appears again... but if someone delete any item, all items will returns with "inactif=1".