strongbox-password-safe / Strongbox

A KeePass/Password Safe Client for iOS and OS X
https://strongboxsafe.com
GNU Affero General Public License v3.0
1.29k stars 100 forks source link

[BUG] [iOS] Safari freezes while AutoFill #779

Open akuropka opened 2 months ago

akuropka commented 2 months ago

Preliminaries I have ensured that:

Versions On iOS (please complete the following information):

Strongbox Version

Describe the bug Safari hangs from time to time after selecting login data and Face-ID-auth.

To Reproduce Steps to reproduce the behavior:

  1. Open Safari
  2. Go to any page with login
  3. Select login credentials
  4. Authenticate with Face ID
  5. See frozen Safari

Expected behavior Data is filled in and user can proceed

Screenshots & Recordings

https://github.com/strongbox-password-safe/Strongbox/assets/22570574/151a4fbf-fe17-4e22-82e5-e90323e4aec7

Additional context Closing and re-opening Safari does not help while opening the database in the App does.

Debug Info -------------------- App Summary ----------------------- App SKU: Zero Pro Status: Lifetime Pro (App SKU is Pro) Platform: iOS 17.5

-------------------- Databases Summary -----------------------

  1. Database (Local (Documents) Sync) => 2024-04-09 15:47:50.000 (45 KB)

Strongbox 1.59.9 Debug Information at 2024-04-14 11:13:34.028

Version Info: com.markmcguill.strongbox.graphene [1.59.9 (4755)@795feff-P] NECF: 0 LEC: 2024-04-14 11:06:09.069 LLIAPP: 0 AMS: 0 AYS: 0 FTA: 0

Device

Model: iPhone 15 Pro Max CPU: ARM64E System Name: iOS System Version: 17.5

Settings

disableNativeNetworkStorageOptions: 1 autoFillLastKnownGoodDatabaseState: {length = 32, bytes = 0x022e84c3 d0c01509 d866b4a3 6c9b8e3a ... faef955f 56bfa315 } databasesSerializationError: Read Error: [Error Domain=NSCocoaErrorDomain Code=260 "The file “databases.json” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/private/var/mobile/Containers/Shared/AppGroup/B179D589-1369-426C-B0C7-44E20CFD203A/preferences/databases.json, NSUnderlyingError=0x301a25d10 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}] haveAskedAboutBackupSettings: 1 numberOfEntitlementCheckFails: 0 launchCount: 14 suppressAppBackgroundTriggers: 0 autoFillWroteCleanly: 1 allowThirdPartyKeyboards: 0 disableWiFiSync: 1 useIsolatedDropbox: 0 databasesAreAlwaysReadOnly: 0 hideKeyFileOnUnlock: 0 addLegacySupplementaryTotpCustomFields: 0 isPro: 1 backupFiles: 1 colorizeUseColorBlindPalette: 0 hasMigratedToLazySync-Iteration-5-RB-OneDrive: 1 pinCodeHapticFeedback: 1 lastKnownGoodDatabaseState: {length = 32, bytes = 0x9e85b9a6 acf7d534 bdef366b 31b22e99 ... f4ecdd45 a8a56a87 } autoFillExitedCleanly: 1 appendDateToExportFileName: 1 autoFillDidChangeDatabases: 0 autoFillQuickLaunchUuid: C9CFE901-8CF6-431C-968C-8C8126E5254B hideTipJar: 1 syncForcePushDoNotCheckForConflicts: 0 monitorInternetConnectivity: 1 disableThirdPartyStorageOptions: 1 pinYinSearchEnabled: 0 hasShownFirstRunWelcome: 1 disableFavIconFeature: 1 showAllFilesInLocalKeyFiles: 0 useParentGroupIconOnCreate: 1 quickLaunchUuid: C9CFE901-8CF6-431C-968C-8C8126E5254B installDate: 2024-03-02 10:34:23 +0000 stripUnusedIconsOnSave: 1 hideExportFromDatabaseContextMenu: 0 instantPinUnlocking: 1 atomicSftpWrite: 1 mainAppDidChangeDatabases: 1 addOtpAuthUrl: 1 lastEntitlementCheckAttempt: 2024-04-14 09:06:09 +0000 zipExports: 1 legacyShowMetadataOnDetailsScreen: 1 appHasBeenDowngradedToFreeEdition: 0 stripUnusedHistoricalIcons: 1 hasShownFirstRunFinalWelcome: 1 markdownNotes: 1 clearClipboardAfterSeconds: 30 backupIncludeImportedKeyFiles: 0 syncPullEvenIfModifiedDateSame: 0 Ep: 1709375663 Flags: P[1[14]]

Last Crash


Sync

Database (Local (Documents) Sync) => 2024-04-09 15:47:50.000 (45 KB)

[cuments/Database.kdbx] 45 KB - M09.04.24, 15:47:50 / C09.04.24, 15:47:50 [preferences/databases.json] 7 KB - MToday, 11:13:00 / CToday, 11:13:00 [.com.apple.mobile_container_manager.metadata.plist] 538 bytes - M02.03.24, 11:33:20 / C02.03.24, 11:33:20 [Library/Preferences/group.strongbox.mcguill.plist] 3 KB - MToday, 11:13:04 / CToday, 11:13:04 [key-files/Database.keyx] 240 bytes - M02.03.24, 11:38:01 / C02.03.24, 11:38:01 [sync-manager/local/C9CFE901-8CF6-431C-968C-8C8126E5254B] 45 KB - M09.04.24, 15:47:50 / C09.04.24, 15:47:50

================================================================= [Database] on [Local (Documents)] Config

{ allowPulldownRefreshSyncInOfflineMode = 0; argon2MemReductionDontAskAgain = 0; auditConfig = { auditInBackground = 1; caseInsensitiveMatchForDuplicates = 1; checkForCommonPasswords = 1; checkForDuplicatedPasswords = 1; checkForLowEntropy = 1; checkForMinimumLength = 0; checkForNoPasswords = 0; checkForSimilarPasswords = 0; checkForTwoFactorAvailable = 0; checkHibp = 0; excludeShortNumericPINCodes = 1; hibpCaveatAccepted = 0; hibpCheckForNewBreachesIntervalSeconds = 604800; lastKnownAuditIssueCount = 213; levenshteinSimilarityThreshold = "0.75"; lowEntropyThreshold = 36; minimumLength = 12; showAuditPopupNotifications2 = 0; }; autoFillConcealedFieldsAsCreds = 0; autoFillConvenienceAutoUnlockTimeout = 0; autoFillCopyTotp = 1; autoFillEnabled = 1; autoFillLastUnlockedAt = "734769094.288837"; autoFillOnboardingDone = 1; autoFillScanCustomFields = 0; autoFillScanNotes = 0; autoFillUnConcealedFieldsAsCreds = 0; autoLockOnDeviceLock = 1; autoLockTimeoutSeconds = 0; browseItemSubtitleField = 1; browseViewType = 0; colorizePasswords = 1; conflictResolutionStrategy = 1; convenienceExpiryOnboardingDone = 0; convenienceExpiryPeriod = "-1"; couldNotConnectBehaviour = 0; customSortOrderForFields = 1; databaseCreated = "2024-03-02 11:36:48.278"; detailsViewCollapsedSections = ( 0, 0, 0, 1, 1 ); doNotShowRecycleBinInBrowse = 0; duressAction = 0; easyReadFontForAll = 0; emptyOrNilPwPreferNilCheckFirst = 0; failedPinAttempts = 0; fileIdentifier = "{\"filename\":\"Database.kdbx\",\"sharedStorage\":false}"; fileName = "Database.kdbx"; forceOpenOffline = 0; hasAcknowledgedAppLockBiometricQuickLaunchCoalesceIssue = 0; hasBeenPromptedForConvenience = 1; hasBeenPromptedForQuickLaunch = 0; hasShownInitialOnboardingScreen = 1; hasUnresolvedConflicts = 0; hideIconInBrowse = 0; hideTabBarIfOnlySingleTab = 0; immediateSearchOnBrowse = 0; includeAssociatedDomains = 1; isAutoFillMemOnlyConveniencePasswordHasBeenStored = 0; isEnrolledForConvenience = 1; isTouchIdEnabled = 1; kdbx4UpgradeDontAskAgain = 0; keePassIconSet = 1; keyFileBookmark = ""; keyFileFileName = ""; lastKnownEncryptionSettings = "KeePass 2 (4.1)/AES-256 (I600000)/AES-256/ChaCha20/GZip/KeePass"; lastSyncAttempt = "2024-04-14 11:12:59.356"; lastSyncRemoteModDate = "2024-04-09 15:47:50.000"; lazySyncMode = 0; likelyFormat = 2; lockEvenIfEditing = 0; makeBackups = 0; maxBackupKeepCount = 10; nickName = Database; offlineDetectedBehaviour = 1; onboardingDoneHasBeenShown = 1; persistLazyEvenLastSyncErrors = 0; promptedForAutoFetchFavIcon = 0; quickTypeDisplayFormat = 0; quickTypeEnabled = 1; readOnly = 1; scheduleExportIntervalDays = 28; scheduledExport = 0; scheduledExportOnboardingDone = 1; showChildCountOnFolderInBrowse = 1; showConvenienceExpiryMessage = 1; showExpiredInBrowse = 1; showExpiredInSearch = 1; showKeePass1BackupGroup = 0; showLastViewedEntryOnUnlock = 1; showPasswordByDefaultOnEditScreen = 0; showQuickViewExpired = 0; showQuickViewFavourites2 = 0; showQuickViewNearlyExpired = 1; showRecycleBinInSearchResults = 0; sortConfigurations = { }; storageProvider = 2; tapAction = 1; tryDownloadFavIconForNewRecord = 0; unlockCount = 32; uuid = "C9CFE901-8CF6-431C-968C-8C8126E5254B"; visibleTabs = ( 3, 0, 1, 4, 2 ); }

strongbox-mark commented 2 months ago

Hi, how often does this happen for you? Is it just a particular site or any random site?

akuropka commented 2 months ago

It does not depend on the site and it happens In-App with Login through external page (WebKit) as well. It happens randomly maybe three out of ten times. But if not working it does not work before opening Strongbox.

strongbox-mark commented 2 months ago

That is very strange indeed. Autofill breaks for you 30% of the time you use it? Is there any more detail you can give?

We’re not seeing reports of an issue like this in production, nor can we reproduce it locally.

Perhaps it is worth removing Strongbox completely and reinstalling. Remember to have a good backup of your database beforehand.