TeamPass icon indicating copy to clipboard operation
TeamPass copied to clipboard

Malformed UTF-8 in load_item_history

Open kultur-burgenland opened this issue 2 years ago • 0 comments

Steps to reproduce

  1. Successfully migrated TeamPass 2.1.27.24 to 2.1.27.36, then to 3.0.0.19 using the official upgrade.php script

  2. Getting some "Malformed UTF-8 data" errors now when accessing single items:

         Next error occurred
         Error: Malformed UTF-8 data
    
         Informations:
         - File: items.queries.php
         - Function: load_item_history
    
         Raw answer from server:
         eyJiaXBoxJOZXholjoiaStNZFkrbmd2MOdINVpaRIBaRnpHU0UwdkzxUiVOOTh2TU1LVnNOWlhibE5cL1dFcGNBS2xgOVA3VDEweUZUWHINvYU9HSIFIODFgaHZZOHJoc05Rbm1s02lUeWOOUmRKdm[...]
    
  3. The item history is empty, everything else gets displayed correctly.

  4. Fun fact: If I reload the page, the error does not reoccur and the item including history gets loaded, but a few entries seem to be missing data, e. g. "Tag | Previous value: =>"

  5. EDIT: This happens with old (migrated) entries as well as with newly created ones. Changing the default language to english prevents the error message from popping up, but the item history still seems to be missing data ("Tag | Previous value: =>").

Expected behaviour

History should get loaded completely.

Actual behaviour

History does not get loaded completely.

Server configuration

Operating system: Ubuntu 22.04.1 LTS

Web server: Apache/2.4.52 (Ubuntu)

Database: MariaDB 10.6.7

PHP version: PHP 8.0.24

Teampass version: 3.0.0.19

Teampass configuration file: #<?php define("DB_HOST", "xxx"); define("DB_USER", "xxx"); define("DB_PASSWD", "xxx"); define("DB_NAME", "xxx); define("DB_PREFIX", "xxx"); define("DB_PORT", "xxx"); define("DB_ENCODING", "utf8"); define("DB_SSL", array( "key" => "", "cert" => "", "ca_cert" => "", "ca_path" => "", "cipher" => "" )); define("DB_CONNECT_OPTIONS", array( MYSQLI_OPT_CONNECT_TIMEOUT => 10 )); define("SECUREPATH", "/xxx");

if (isset($_SESSION['settings']['timezone']) === true) { date_default_timezone_set($_SESSION['settings']['timezone']); }

Updated from an older Teampass or fresh install: #<?php global $SETTINGS; $SETTINGS = array ( 'max_latest_items' => '10', 'enable_favourites' => '1', 'show_last_items' => '1', 'enable_pf_feature' => '1', 'log_connections' => '0', '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' => 'xxx', 'cpassman_url' => 'xxx', 'favicon' => 'xxx', 'path_to_upload_folder' => 'xxx', 'url_to_upload_folder' => 'xxx', 'path_to_files_folder' => 'xxx', 'url_to_files_folder' => 'xxx', 'activate_expiration' => '0', 'pw_life_duration' => '0', 'maintenance_mode' => '0', 'enable_sts' => '0', 'encryptClientServer' => '1', 'cpassman_version' => '3.0.0.19', 'ldap_mode' => '1', 'ldap_type' => 'xxx', 'ldap_suffix' => 'xxx', 'ldap_domain_dn' => 'xxx', 'ldap_domain_controler' => 'xxx', 'ldap_user_attribute' => 'xxx', 'ldap_ssl' => 'xxx', 'ldap_tls' => 'xxx', 'ldap_elusers' => 'xxx', 'ldap_search_base' => 'xxx', 'ldap_port' => 'xxx', 'richtext' => '0', 'allow_print' => '1', 'roles_allowed_to_print' => '["["1","2","3"]"]', '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' => '1', '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' => 'xxx', 'custom_login_text' => 'Herzlich Willkommen!', 'default_language' => 'german', '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_t[...]' 'send_stats_time' => '1536576431', 'get_tp_info' => '0', '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' => 'xxx', 'email_smtp_auth' => '1', 'email_auth_username' => 'xxx', 'email_auth_pwd' => 'xxx', 'email_port' => 'xxx', 'email_security' => 'xxx', 'email_server_url' => '', 'email_from' => 'xxx', 'email_from_name' => 'xxx', 'pwd_maximum_length' => '80', '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', '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' => 'xxx', 'api' => '0', 'subfolder_rights_as_parent' => '1', 'show_only_accessible_folders' => '1', 'enable_suggestion' => '0', 'otv_expiration_period' => '7', 'default_session_expiration_time' => '60', 'duo' => '0', 'enable_server_password_change' => '0', 'ldap_object_class' => 'user', 'bck_script_path' => 'xxx', 'bck_script_filename' => 'xxx', 'syslog_enable' => '0', 'syslog_host' => 'localhost', 'syslog_port' => '514', 'manager_move_item' => '1', '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/Vienna', 'enable_attachment_encryption' => '1', 'personal_saltkey_security_level' => '50', 'ldap_new_user_is_administrated_by' => '2', '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' => '0', 'upload_all_extensions_file' => '1', 'bck_script_passkey' => 'xxx', 'ldap_new_user_role' => '8', 'ldap_allowed_usergroup' => 'xxx', 'ldap_usergroup' => 'xxx', 'ldap_bind_dn' => 'xxx', 'ldap_bind_passwd' => 'xxx', 'use_http_request_login' => 'xxx', 'max_last_items' => '3', 'can_create_root_folder' => '0', 'ga_reset_by_user' => '1', 'admin_2fa_required' => '1', 'password_overview_delay' => '20', 'roles_allowed_to_print_select' => '', 'clipboard_life_duration' => '0', 'mfa_for_roles' => '[1,2,3,4,5,6,8,9]', 'tree_counters' => '0', 'settings_offline_mode' => '0', 'settings_tree_counters' => '0', 'copy_to_clipboard_small_icons' => '0', 'enable_massive_move_delete' => '0', 'email_debug_level' => '0', 'onthefly-backup-key' => 'xxx', 'onthefly-restore-key' => 'xxx', 'ldap_user_dn_attribute' => 'xxx', 'ldap_dn_additional_user_dn' => '', 'ldap_user_object_filter' => '', 'ldap_bdn' => 'xxx', 'ldap_hosts' => 'xxx', 'ldap_password' => 'xxx', 'ldap_username' => 'xxx', 'api_token_duration' => '60', 'enable_tasks_manager' => '0', 'task_maximum_run_time' => '300', 'maximum_number_of_items_to_treat' => '300', 'tasks_manager_refreshing_period' => '100', 'duo_ikey' => '', 'duo_skey' => '', 'duo_host' => '', 'duo_failmode' => 'secure', 'teampass_version' => '', );

Client configuration

Browser: Google Chrome 106.0.5249.119

Operating system: Windows 10

Logs

Web server error log

Undefined array key "en_lang" in /xxx/TeamPass-3.0.0.19/sources/main.functions.php on line 74, referer: https://xxx/index.php?page=items
Trying to access array offset on value of type null in /xxx/TeamPass-3.0.0.19/sources/main.functions.php on line 74, referer: https://xxx/index.php?page=items

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

History: false

kultur-burgenland avatar Oct 13 '22 13:10 kultur-burgenland