/

CVE-2026-107049

Severity:

HIGH RISK

(7.5)

Improper Authorization (CWE-863) in Forkyz Storage Settings

CVE-2026-107049

Deferred

Vulnerability type

Category:

Improper Authorization

CWE:

CWE-863

Impact:

Unauthorized modification of user storage settings

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

Forkyz contains an authorization weakness that may allow an attacker to change another user's storage settings by supplying a specially crafted URI string. The issue becomes risky when URI-triggered actions do not properly verify that the requesting user is authorized to modify the targeted account or configuration.

Forkyz contains an authorization weakness that may allow an attacker to change another user's storage settings by supplying a specially crafted URI string. The issue becomes risky when URI-triggered actions do not properly verify that the requesting user is authorized to modify the targeted account or configuration.

Affected context

The vulnerability occurs in Forkyz functionality that processes URI strings to update storage settings. It may affect deployments where URI-triggered operations identify or access another user's settings without consistently enforcing ownership or authorization checks before applying the requested change.

The vulnerability occurs in Forkyz functionality that processes URI strings to update storage settings. It may affect deployments where URI-triggered operations identify or access another user's settings without consistently enforcing ownership or authorization checks before applying the requested change.

Exploit preconditions

  • Attack surface: URI-handling functionality exposed by the Forkyz application
  • Required access: The ability to submit or cause processing of a crafted URI string
  • Trigger point: Processing of the URI request that changes storage settings
  • Why exploitation is possible: Authorization checks may not adequately confirm that the requester can modify the targeted user's storage configuration
  • Attack surface: URI-handling functionality exposed by the Forkyz application
  • Required access: The ability to submit or cause processing of a crafted URI string
  • Trigger point: Processing of the URI request that changes storage settings
  • Why exploitation is possible: Authorization checks may not adequately confirm that the requester can modify the targeted user's storage configuration

Why this happens

The underlying bug is an authorization enforcement failure. The application appears to accept a user-controlled URI that identifies a storage-setting operation without reliably binding the operation to the authenticated user's authorized scope.

This behavior maps to CWE-863: Incorrect Authorization, where access-control decisions are missing, incomplete, or applied to the wrong security principal or resource.

The underlying bug is an authorization enforcement failure. The application appears to accept a user-controlled URI that identifies a storage-setting operation without reliably binding the operation to the authenticated user's authorized scope.

This behavior maps to CWE-863: Incorrect Authorization, where access-control decisions are missing, incomplete, or applied to the wrong security principal or resource.

Potential impact

  • An attacker may alter another user's storage settings
  • Account functionality or data access may be disrupted
  • Storage locations or synchronization behavior could be changed without consent
  • Modified settings could contribute to privacy or data-integrity risks
  • An attacker may alter another user's storage settings
  • Account functionality or data access may be disrupted
  • Storage locations or synchronization behavior could be changed without consent
  • Modified settings could contribute to privacy or data-integrity risks

General mitigation guidance

Mitigation generally focuses on enforcing authorization at the point where storage settings are changed, rather than relying on URI structure or earlier navigation checks.

Common defensive patterns include:

  • Deriving the target user from the authenticated security context where possible
  • Verifying ownership or explicit permission for every settings modification
  • Treating URI parameters as untrusted identifiers and validating them against authorized resources
  • Using deny-by-default authorization policies for account and storage configuration actions
  • Limiting the privileges available to the component that applies storage changes
  • Avoiding sensitive state changes through URI handlers unless strong authorization and confirmation controls are present

Mitigation generally focuses on enforcing authorization at the point where storage settings are changed, rather than relying on URI structure or earlier navigation checks.

Common defensive patterns include:

  • Deriving the target user from the authenticated security context where possible
  • Verifying ownership or explicit permission for every settings modification
  • Treating URI parameters as untrusted identifiers and validating them against authorized resources
  • Using deny-by-default authorization policies for account and storage configuration actions
  • Limiting the privileges available to the component that applies storage changes
  • Avoiding sensitive state changes through URI handlers unless strong authorization and confirmation controls are present

How teams detect issues like this

Organizations can look for authorization weaknesses through:

  • Static analysis rules identifying state-changing URI handlers without nearby authorization checks
  • Code review searches for user-controlled identifiers used to select accounts or storage settings
  • Tests that attempt cross-user access with valid and invalid ownership relationships
  • Policy enforcement requiring centralized authorization checks for sensitive configuration changes
  • Runtime audit logging that records the authenticated principal, target account, and authorization result for storage-setting updates

Automated security testing and code-review tools may help identify missing object-level authorization checks, but should be supplemented with manual review of access-control boundaries.

Organizations can look for authorization weaknesses through:

  • Static analysis rules identifying state-changing URI handlers without nearby authorization checks
  • Code review searches for user-controlled identifiers used to select accounts or storage settings
  • Tests that attempt cross-user access with valid and invalid ownership relationships
  • Policy enforcement requiring centralized authorization checks for sensitive configuration changes
  • Runtime audit logging that records the authenticated principal, target account, and authorization result for storage-setting updates

Automated security testing and code-review tools may help identify missing object-level authorization checks, but should be supplemented with manual review of access-control boundaries.

Sources

SourceLink
codeberg.orgcodeberg.org/jeffshee/forkyz
f-droid.orgf-droid.org/packages/app.crossword.yourealwaysbe.forkyz/
github.comgithub.com/FFG0d/fdroid-android-advisories/blob/main/advisories/CVE-2026-107049.md

Frequently asked

questions

Yes. If the crafted URI is processed without confirming that the requester is authorized for the targeted settings, another user's storage configuration may be changed.

The description does not establish a specific authentication requirement. The decisive factor is whether an attacker can submit a URI that reaches the vulnerable handler and whether that handler performs adequate authorization checks.

Enforce server- or application-side authorization for every storage-setting modification, using the authenticated user's permissions and the targeted resource's ownership rather than trusting URI-provided identifiers.

Apply centralized, deny-by-default access control; test cross-user resource access; treat URI values as untrusted input; and audit all handlers that can modify account or storage state.

Yes. If the crafted URI is processed without confirming that the requester is authorized for the targeted settings, another user's storage configuration may be changed.

The description does not establish a specific authentication requirement. The decisive factor is whether an attacker can submit a URI that reaches the vulnerable handler and whether that handler performs adequate authorization checks.

Enforce server- or application-side authorization for every storage-setting modification, using the authenticated user's permissions and the targeted resource's ownership rather than trusting URI-provided identifiers.

Apply centralized, deny-by-default access control; test cross-user resource access; treat URI values as untrusted input; and audit all handlers that can modify account or storage state.

Find out what's already
exploitable in your codebase.