Overview

This test verifies whether the target app prevents sensitive information entered into text fields from being cached by the system keyboard. On iOS, the keyboard may suggest previously entered text when typing in any app on the device.

The test checks whether UI elements such as UITextField, UITextView, and UISearchBar prevent keyboard caching by using one or more of the following attributes:

Note: By default, text input is eligible for keyboard caching, and an app does not need to explicitly set UITextAutocorrectionType when creating a text field. Additionally, the UI may be configured in a Storyboard. As a result, this test may miss many true positives. For complete coverage, using MASTG-TEST-0314 is recommended.

Steps

  1. Use MASTG-TECH-0058 to extract the relevant binaries from app package.
  2. Use MASTG-TECH-0066 to look for the relevant APIs in the app binaries.

Observation

The output should contain a list of locations where the app:

Evaluation

The test case fails if any UI inputs that may handle sensitive values, for example usernames, passwords, email addresses, credit card numbers, or recovery codes, are eligible for keyboard caching. This occurs when:

Further Validation Required:

Inspect each reported code location using MASTG-TECH-0076 to determine the values assigned to the input attributes and whether the text field handles sensitive data.

Note

Depending on the app's threat model, some text fields may not require disabling spell checking. However, since enabling isSecureTextEntry implicitly disables both autocorrection and spell checking, and since explicit guarantees are otherwise limited, it is generally advisable to disable all three attributes for any text field that may handle sensitive information.

Expected False Negatives:

This test may produce false negatives if the app uses custom text input controls that do not rely on standard UIKit classes such as UITextField or UITextView, for example in custom UI frameworks or game engines, or if text entry is handled through nonstandard abstractions that prevent reliable observation of input traits at rest.