/

CVE-2026-107015

Severity:

CRITICAL RISK

(9.1)

Broken Access Control (CWE-284) in Simple Contacts Pro

CVE-2026-107015

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-284

Impact:

Unauthorized access to and modification of another user's notes

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

Simple Contacts Pro versionCode 107 contains an insecure-permissions issue that may allow an unauthorized user to read or modify notes belonging to another user. The vulnerability becomes risky when note-database access is exposed without reliable per-user authorization checks.

Simple Contacts Pro versionCode 107 contains an insecure-permissions issue that may allow an unauthorized user to read or modify notes belonging to another user. The vulnerability becomes risky when note-database access is exposed without reliable per-user authorization checks.

Affected context

The issue occurs in the application's note-storage and access-control boundary, where note records should be restricted to their owning user. Deployments may be exposed when database operations rely on client-supplied identifiers, shared storage permissions, or incomplete ownership checks instead of enforcing authorization for every read and write operation.

The issue occurs in the application's note-storage and access-control boundary, where note records should be restricted to their owning user. Deployments may be exposed when database operations rely on client-supplied identifiers, shared storage permissions, or incomplete ownership checks instead of enforcing authorization for every read and write operation.

Exploit preconditions

  • Attack surface: Application interfaces or storage operations that read or write user notes
  • Required access: Access to the application or an exposed note-management function; elevated privileges may not be required
  • Trigger point: A note read or write operation involving another user's record
  • Why exploitation is possible: The application may fail to verify record ownership and enforce authorization before allowing access
  • Attack surface: Application interfaces or storage operations that read or write user notes
  • Required access: Access to the application or an exposed note-management function; elevated privileges may not be required
  • Trigger point: A note read or write operation involving another user's record
  • Why exploitation is possible: The application may fail to verify record ownership and enforce authorization before allowing access

Why this happens

The underlying bug is an authorization design failure in which access to note records is determined without consistently validating the requesting user's identity and ownership of the target record. This maps to CWE-284: Improper Access Control, because protected resources can be read or changed without an effective permission decision at the server or storage boundary.

The underlying bug is an authorization design failure in which access to note records is determined without consistently validating the requesting user's identity and ownership of the target record. This maps to CWE-284: Improper Access Control, because protected resources can be read or changed without an effective permission decision at the server or storage boundary.

Potential impact

  • An attacker may read private notes belonging to other users
  • An attacker could alter, overwrite, or delete another user's notes
  • Confidential information may be disclosed
  • Note integrity and user trust can be compromised
  • The issue may enable broader account or application abuse if notes contain sensitive data
  • An attacker may read private notes belonging to other users
  • An attacker could alter, overwrite, or delete another user's notes
  • Confidential information may be disclosed
  • Note integrity and user trust can be compromised
  • The issue may enable broader account or application abuse if notes contain sensitive data

General mitigation guidance

Mitigation generally focuses on enforcing authorization as close as possible to the protected data operation. Common defensive patterns include applying deny-by-default, per-user ownership checks for every read and write, and server-side authorization that does not trust client-provided user or record identifiers. Secure-by-default data-access interfaces, minimized database permissions, strong tenant isolation, and least-privilege application identities can reduce exposure. Input validation should complement, rather than replace, authenticated authorization decisions.

Mitigation generally focuses on enforcing authorization as close as possible to the protected data operation. Common defensive patterns include applying deny-by-default, per-user ownership checks for every read and write, and server-side authorization that does not trust client-provided user or record identifiers. Secure-by-default data-access interfaces, minimized database permissions, strong tenant isolation, and least-privilege application identities can reduce exposure. Input validation should complement, rather than replace, authenticated authorization decisions.

How teams detect issues like this

Detection may include static analysis for database queries or repository methods that access records without an ownership predicate, and code review checks for client-controlled identifiers used directly in note operations. Security tests can verify that one authenticated user cannot read or modify another user's records. Policy enforcement may require authorization checks at service and data-access layers, while automated review tools can flag missing access-control conditions and insecure direct object references.

Detection may include static analysis for database queries or repository methods that access records without an ownership predicate, and code review checks for client-controlled identifiers used directly in note operations. Security tests can verify that one authenticated user cannot read or modify another user's records. Policy enforcement may require authorization checks at service and data-access layers, while automated review tools can flag missing access-control conditions and insecure direct object references.

Sources

SourceLink
github.comgithub.com/FFG0d/fdroid-android-advisories/blob/main/advisories/CVE-2026-107015-CVE-2026-107016.md
github.comgithub.com/SimpleMobileTools/Simple-Contacts
github.comgithub.com/kanytu/Simple-Contacts/issues/628

Frequently asked

questions

It may be exploitable through an application interface if an attacker can reach note-management functionality and the application does not enforce record ownership.

Authentication may still be required, but elevated privileges should not be necessary if authorization checks fail to distinguish the attacker's notes from another user's notes.

Enforce server-side, deny-by-default authorization and verify the authenticated user's ownership or explicitly granted permission before every note read or write.

Use centralized authorization logic, isolate users' data, test cross-user access boundaries, avoid trusting client-supplied ownership identifiers, and enforce least-privilege database permissions.

It may be exploitable through an application interface if an attacker can reach note-management functionality and the application does not enforce record ownership.

Authentication may still be required, but elevated privileges should not be necessary if authorization checks fail to distinguish the attacker's notes from another user's notes.

Enforce server-side, deny-by-default authorization and verify the authenticated user's ownership or explicitly granted permission before every note read or write.

Use centralized authorization logic, isolate users' data, test cross-user access boundaries, avoid trusting client-supplied ownership identifiers, and enforce least-privilege database permissions.

Find out what's already
exploitable in your codebase.