/

CVE-2026-109164

Severity:

HIGH RISK

(7.1)

IDOR (CWE-639) in TDuck Survey Form Submission API

CVE-2026-109164

Deferred

Vulnerability type

Category:

Insecure Direct Object Reference

CWE:

CWE-639

Impact:

Unauthorized Data Deletion

Severity:

HIGH RISK

(7.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

TDuck survey form through version 6.0 contains an insecure direct object reference vulnerability that lets an authenticated user target form submissions by changing submission identifiers. Under deployments where submission IDs are accepted without verifying ownership or authorization, an attacker may permanently delete submissions belonging to other users.

TDuck survey form through version 6.0 contains an insecure direct object reference vulnerability that lets an authenticated user target form submissions by changing submission identifiers. Under deployments where submission IDs are accepted without verifying ownership or authorization, an attacker may permanently delete submissions belonging to other users.

Affected context

The issue occurs in TDuck survey form functionality that processes deletion requests using submission identifiers supplied by the client. It becomes risky when the application relies on a user-controlled identifier and does not consistently verify that the authenticated user is authorized to delete the referenced submission.

The issue occurs in TDuck survey form functionality that processes deletion requests using submission identifiers supplied by the client. It becomes risky when the application relies on a user-controlled identifier and does not consistently verify that the authenticated user is authorized to delete the referenced submission.

Exploit preconditions

  • Attack surface: Survey submission deletion endpoint
  • Required access: An authenticated TDuck user account
  • Trigger point: A deletion request containing a selected form key and submission identifier
  • Why exploitation is possible: The server may use the supplied object identifier without enforcing ownership or object-level authorization, allowing requests to address submissions outside the user's permitted scope
  • Attack surface: Survey submission deletion endpoint
  • Required access: An authenticated TDuck user account
  • Trigger point: A deletion request containing a selected form key and submission identifier
  • Why exploitation is possible: The server may use the supplied object identifier without enforcing ownership or object-level authorization, allowing requests to address submissions outside the user's permitted scope

Why this happens

The underlying bug is an authorization failure in object lookup and deletion. The application appears to treat a client-supplied submission ID as sufficient to identify a deletable record instead of binding the lookup to the authenticated user's permissions or the relevant ownership context. This behavior maps to CWE-639: Authorization Bypass Through User-Controlled Key, a form of insecure direct object reference.

The underlying bug is an authorization failure in object lookup and deletion. The application appears to treat a client-supplied submission ID as sufficient to identify a deletable record instead of binding the lookup to the authenticated user's permissions or the relevant ownership context. This behavior maps to CWE-639: Authorization Bypass Through User-Controlled Key, a form of insecure direct object reference.

Potential impact

  • An attacker may delete other users' survey submissions
  • Survey results and historical records could be permanently lost
  • Platform-wide data integrity could be reduced
  • Operational, reporting, or compliance workflows could be disrupted
  • Repeated abuse could cause broad denial of service for submission data
  • An attacker may delete other users' survey submissions
  • Survey results and historical records could be permanently lost
  • Platform-wide data integrity could be reduced
  • Operational, reporting, or compliance workflows could be disrupted
  • Repeated abuse could cause broad denial of service for submission data

General mitigation guidance

Mitigation generally focuses on enforcing object-level authorization at the point where a submission is retrieved or deleted.

Common defensive patterns include:

  • Authorizing every submission operation against the authenticated principal and permitted form scope
  • Avoiding reliance on client-supplied identifiers as proof of ownership
  • Binding object queries to tenant, user, or role constraints before mutation
  • Using opaque, non-sequential identifiers as a defense-in-depth measure rather than as the primary authorization control
  • Applying least privilege to accounts and service identities that can modify submissions
  • Recording and reviewing destructive actions, with recovery controls where appropriate

Mitigation generally focuses on enforcing object-level authorization at the point where a submission is retrieved or deleted.

Common defensive patterns include:

  • Authorizing every submission operation against the authenticated principal and permitted form scope
  • Avoiding reliance on client-supplied identifiers as proof of ownership
  • Binding object queries to tenant, user, or role constraints before mutation
  • Using opaque, non-sequential identifiers as a defense-in-depth measure rather than as the primary authorization control
  • Applying least privilege to accounts and service identities that can modify submissions
  • Recording and reviewing destructive actions, with recovery controls where appropriate

How teams detect issues like this

Organizations can look for IDOR risks through:

  • Static analysis and code review checks for direct database access using request-provided identifiers
  • Review of deletion, update, and download endpoints for missing ownership or tenant predicates
  • Authorization tests that compare access to owned and unowned object identifiers
  • Policy enforcement requiring object-level authorization before destructive operations
  • Monitoring for repeated deletion requests, sequential identifier access, and unusual cross-user activity

Automated application security testing and code review tools may help identify these patterns, but authorization behavior should also be validated with context-aware tests.

Organizations can look for IDOR risks through:

  • Static analysis and code review checks for direct database access using request-provided identifiers
  • Review of deletion, update, and download endpoints for missing ownership or tenant predicates
  • Authorization tests that compare access to owned and unowned object identifiers
  • Policy enforcement requiring object-level authorization before destructive operations
  • Monitoring for repeated deletion requests, sequential identifier access, and unusual cross-user activity

Automated application security testing and code review tools may help identify these patterns, but authorization behavior should also be validated with context-aware tests.

Sources

SourceLink
github.comgithub.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/tduck/poc_form_data_delete_idor.py
github.comgithub.com/TDuckCloud/tduck-survey-form/blob/43ffa9c993e38936fc4de7d8e5aee82bbaa19502/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserFormResultController.java#L182-L187
github.comgithub.com/TDuckCloud/tduck-survey-form/blob/43ffa9c993e38936fc4de7d8e5aee82bbaa19502/tduck-form/src/main/java/com/tduck/cloud/form/service/impl/UserFormDataServiceImpl.java#L149-L154
vulncheck.comvulncheck.com/advisories/tduck-survey-form-through-6.0-authorization-bypass-via-user-controlled-submission-ids-in-post-user-form-data-delete-formkey

Frequently asked

questions

It may be exploitable through the survey submission functionality over the network when the affected endpoint is exposed and the attacker has a valid account.

Exploitation requires authentication, along with access to the relevant survey functionality. The key missing control is authorization for each referenced submission.

Enforce server-side object-level authorization during every submission lookup and deletion, ensuring the authenticated user or role is permitted to act on that specific record.

Use ownership- and tenant-aware queries, test cross-user object access, avoid treating sequential IDs as secrets, and require explicit authorization checks for all destructive operations.

It may be exploitable through the survey submission functionality over the network when the affected endpoint is exposed and the attacker has a valid account.

Exploitation requires authentication, along with access to the relevant survey functionality. The key missing control is authorization for each referenced submission.

Enforce server-side object-level authorization during every submission lookup and deletion, ensuring the authenticated user or role is permitted to act on that specific record.

Use ownership- and tenant-aware queries, test cross-user object access, avoid treating sequential IDs as secrets, and require explicit authorization checks for all destructive operations.

Find out what's already
exploitable in your codebase.