/

CVE-2026-107034

Severity:

CRITICAL RISK

(9.1)

Improper Access Control (CWE-284) in LeafPad Note Data

CVE-2026-107034

Deferred

Vulnerability type

Category:

Improper Access Control

CWE:

CWE-284

Impact:

Unauthorized disclosure of user note data

Severity:

CRITICAL RISK

(9.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

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

SourceLink
f-droid.orgf-droid.org/packages/com.git.amarradi.leafpad/
github.comgithub.com/FFG0d/fdroid-android-advisories/blob/main/advisories/CVE-2026-107034.md
github.comgithub.com/amarradi/leafpad_Android

Frequently asked

questions

Exploitability depends on how LeafPad / Leaf Note exposes note data. An attacker generally needs a way to interact with the affected application or storage path, but may not need access to the victim's account.

Not necessarily. The key requirement is reaching a note-data operation that fails to enforce ownership; in some deployments, a low-privilege or authenticated account may be sufficient.

Enforce authorization for every note read using a trusted user identity and verify that the requested record belongs to, or is explicitly shared with, that user.

Use deny-by-default access policies, avoid trusting client-provided ownership fields, isolate user data where practical, and include cross-user authorization tests in development and release checks.

Exploitability depends on how LeafPad / Leaf Note exposes note data. An attacker generally needs a way to interact with the affected application or storage path, but may not need access to the victim's account.

Not necessarily. The key requirement is reaching a note-data operation that fails to enforce ownership; in some deployments, a low-privilege or authenticated account may be sufficient.

Enforce authorization for every note read using a trusted user identity and verify that the requested record belongs to, or is explicitly shared with, that user.

Use deny-by-default access policies, avoid trusting client-provided ownership fields, isolate user data where practical, and include cross-user authorization tests in development and release checks.

Find out what's already
exploitable in your codebase.