/

CVE-2026-107037

Severity:

HIGH RISK

(7.5)

Broken Access Control (CWE-284) in NoNonsense Notes

CVE-2026-107037

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-284

Impact:

Unauthorized modification of user notes

Severity:

HIGH RISK

(7.5)

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

An insecure permission flaw in the NotificationHelper component of NoNonsense Notes may allow an unauthorized user to write to another user's notes by supplying a note identifier. The issue becomes risky when the component does not verify that the requesting user owns or is authorized to modify the referenced note.

An insecure permission flaw in the NotificationHelper component of NoNonsense Notes may allow an unauthorized user to write to another user's notes by supplying a note identifier. The issue becomes risky when the component does not verify that the requesting user owns or is authorized to modify the referenced note.

Affected context

The vulnerability occurs in the NotificationHelper component of NoNonsense Notes when note operations rely on a supplied note ID without consistently enforcing ownership or authorization checks. Deployments are more exposed when note identifiers are accepted from untrusted requests and object-level permissions are not independently verified for each operation.

The vulnerability occurs in the NotificationHelper component of NoNonsense Notes when note operations rely on a supplied note ID without consistently enforcing ownership or authorization checks. Deployments are more exposed when note identifiers are accepted from untrusted requests and object-level permissions are not independently verified for each operation.

Exploit preconditions

  • Attack surface: Note-related functionality exposed through the NotificationHelper component
  • Required access: A user or other party able to submit a request containing a note identifier
  • Trigger point: A write operation targeting the referenced note
  • Why exploitation is possible: The component may authorize the request without confirming that the requester has permission to modify the identified note
  • Attack surface: Note-related functionality exposed through the NotificationHelper component
  • Required access: A user or other party able to submit a request containing a note identifier
  • Trigger point: A write operation targeting the referenced note
  • Why exploitation is possible: The component may authorize the request without confirming that the requester has permission to modify the identified note

Why this happens

The underlying bug is an object-level authorization failure. The application accepts a client-controlled note identifier but does not reliably enforce a relationship between the authenticated requester and the referenced note before performing a write. This behavior maps to CWE-284: Improper Access Control, because access decisions are incomplete or insufficiently tied to the protected resource.

The underlying bug is an object-level authorization failure. The application accepts a client-controlled note identifier but does not reliably enforce a relationship between the authenticated requester and the referenced note before performing a write. This behavior maps to CWE-284: Improper Access Control, because access decisions are incomplete or insufficiently tied to the protected resource.

Potential impact

  • An attacker may alter another user's notes
  • Note content or metadata could be tampered with
  • Users may lose trust in the integrity of stored information
  • Modified notes could support fraud, misinformation, or workflow disruption
  • An attacker may alter another user's notes
  • Note content or metadata could be tampered with
  • Users may lose trust in the integrity of stored information
  • Modified notes could support fraud, misinformation, or workflow disruption

General mitigation guidance

Mitigation generally focuses on enforcing authorization at the resource boundary rather than trusting identifiers supplied by clients.

Common defensive patterns include:

  • Checking resource ownership or explicit permissions before every note write
  • Deriving the effective user context from the authenticated session
  • Avoiding authorization decisions based solely on client-supplied note IDs
  • Applying deny-by-default access policies for note operations
  • Separating read, update, and delete permissions where appropriate
  • Logging denied and unusual cross-user resource access attempts
  • Limiting service and database privileges to only the operations required

Mitigation generally focuses on enforcing authorization at the resource boundary rather than trusting identifiers supplied by clients.

Common defensive patterns include:

  • Checking resource ownership or explicit permissions before every note write
  • Deriving the effective user context from the authenticated session
  • Avoiding authorization decisions based solely on client-supplied note IDs
  • Applying deny-by-default access policies for note operations
  • Separating read, update, and delete permissions where appropriate
  • Logging denied and unusual cross-user resource access attempts
  • Limiting service and database privileges to only the operations required

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis rules identifying resource lookups followed by writes without authorization checks
  • Code review signals such as direct use of request-supplied identifiers in update operations
  • Authorization tests that attempt to access and modify resources belonging to another account
  • Policy enforcement requiring object-level authorization for protected resource handlers
  • Runtime monitoring for repeated note-ID changes or cross-account access patterns

Automated review tools may help identify missing authorization checks, but behavior-focused testing remains important.

Organizations can look for this class of issue through:

  • Static analysis rules identifying resource lookups followed by writes without authorization checks
  • Code review signals such as direct use of request-supplied identifiers in update operations
  • Authorization tests that attempt to access and modify resources belonging to another account
  • Policy enforcement requiring object-level authorization for protected resource handlers
  • Runtime monitoring for repeated note-ID changes or cross-account access patterns

Automated review tools may help identify missing authorization checks, but behavior-focused testing remains important.

Sources

SourceLink
f-droid.orgf-droid.org/packages/com.nononsenseapps.notepad/
github.comgithub.com/FFG0d/fdroid-android-advisories/blob/main/advisories/CVE-2026-107037.md
github.comgithub.com/spacecowboy/NotePad

Frequently asked

questions

It may be exploitable through an exposed note-writing interface when an attacker can submit a note identifier and the application fails to validate ownership or authorization.

The available description does not establish whether authentication is required. The essential condition is the ability to reach the affected operation and provide a target note identifier.

Enforce server-side, object-level authorization before every write, using the authenticated user or service identity to verify access to the referenced note.

Use deny-by-default authorization, test cross-account access scenarios, avoid trusting client-supplied ownership information, and require security review of all identifier-based resource operations.

It may be exploitable through an exposed note-writing interface when an attacker can submit a note identifier and the application fails to validate ownership or authorization.

The available description does not establish whether authentication is required. The essential condition is the ability to reach the affected operation and provide a target note identifier.

Enforce server-side, object-level authorization before every write, using the authenticated user or service identity to verify access to the referenced note.

Use deny-by-default authorization, test cross-account access scenarios, avoid trusting client-supplied ownership information, and require security review of all identifier-based resource operations.

Find out what's already
exploitable in your codebase.