Summary
A critical access-control weakness in LeafPad / Leaf Note v1.21 may allow an unauthorized user to read another user's stored note data. The risk arises when note storage or retrieval does not adequately verify that the requesting user owns or is permitted to access the selected data.
A critical access-control weakness in LeafPad / Leaf Note v1.21 may allow an unauthorized user to read another user's stored note data. The risk arises when note storage or retrieval does not adequately verify that the requesting user owns or is permitted to access the selected data.
Affected context
The vulnerability occurs in LeafPad / Leaf Note v1.21 (versionCode 21) when note data is exposed through a storage or retrieval path that lacks effective per-user authorization checks. Exploitation depends on the application allowing an attacker to reach that path and access data belonging to another user.
The vulnerability occurs in LeafPad / Leaf Note v1.21 (versionCode 21) when note data is exposed through a storage or retrieval path that lacks effective per-user authorization checks. Exploitation depends on the application allowing an attacker to reach that path and access data belonging to another user.
Exploit preconditions
- Attack surface: LeafPad / Leaf Note note-data storage or retrieval functionality
- Required access: Ability to run or interact with the application and reach the affected data path
- Trigger point: A note read or data-access operation involving another user's records
- Why exploitation is possible: Authorization enforcement may fail to bind the requested note data to the requesting user's identity
- Attack surface: LeafPad / Leaf Note note-data storage or retrieval functionality
- Required access: Ability to run or interact with the application and reach the affected data path
- Trigger point: A note read or data-access operation involving another user's records
- Why exploitation is possible: Authorization enforcement may fail to bind the requested note data to the requesting user's identity
Why this happens
The underlying bug is an authorization design failure in which access to note records is not consistently checked against the authenticated or intended owner's permissions. This maps to CWE-284, Improper Access Control, because the application may permit a subject to access protected data without adequately enforcing the applicable security policy.
The underlying bug is an authorization design failure in which access to note records is not consistently checked against the authenticated or intended owner's permissions. This maps to CWE-284, Improper Access Control, because the application may permit a subject to access protected data without adequately enforcing the applicable security policy.
Potential impact
- An unauthorized user may read another user's note contents
- Sensitive personal, business, or operational information could be disclosed
- Exposed notes could support follow-on privacy or account-targeting attacks
- Multiple users' data may be affected if the access-control boundary is broadly missing
- An unauthorized user may read another user's note contents
- Sensitive personal, business, or operational information could be disclosed
- Exposed notes could support follow-on privacy or account-targeting attacks
- Multiple users' data may be affected if the access-control boundary is broadly missing
General mitigation guidance
Mitigation generally focuses on enforcing authorization at every note-data access boundary.
Common defensive patterns include:
- Apply server-side or trusted application-layer ownership checks for every read operation
- Bind note identifiers and storage paths to the requesting user's identity
- Use deny-by-default authorization policies and avoid relying on client-supplied ownership values
- Minimize the data returned by note APIs and storage adapters
- Protect note stores with least-privilege permissions and separate user data where practical
- Add authorization tests for same-user, cross-user, unauthenticated, and invalid-identity cases
Mitigation generally focuses on enforcing authorization at every note-data access boundary.
Common defensive patterns include:
- Apply server-side or trusted application-layer ownership checks for every read operation
- Bind note identifiers and storage paths to the requesting user's identity
- Use deny-by-default authorization policies and avoid relying on client-supplied ownership values
- Minimize the data returned by note APIs and storage adapters
- Protect note stores with least-privilege permissions and separate user data where practical
- Add authorization tests for same-user, cross-user, unauthenticated, and invalid-identity cases
How teams detect issues like this
Organizations can look for this weakness through:
- Static analysis and code review of note reads, storage queries, file paths, and object identifiers
- Review signals such as authorization checks performed only in the user interface or only during note creation
- Tests that attempt cross-user access using valid identifiers from a different account
- Runtime audit logging for note access, including requester identity and resource ownership
- Policy enforcement requiring explicit authorization checks before protected data is returned
- Automated security testing or code-review tools that identify missing object-level access controls
Organizations can look for this weakness through:
- Static analysis and code review of note reads, storage queries, file paths, and object identifiers
- Review signals such as authorization checks performed only in the user interface or only during note creation
- Tests that attempt cross-user access using valid identifiers from a different account
- Runtime audit logging for note access, including requester identity and resource ownership
- Policy enforcement requiring explicit authorization checks before protected data is returned
- Automated security testing or code-review tools that identify missing object-level access controls
Sources
| Source | Link |
|---|---|
| f-droid. | f-droid.org/ |
| github. | github.com/ |
| github. | github.com/ |

