/

CVE-2026-51876

Severity:

CRITICAL RISK

(9.1)

Authorization Bypass (CWE-285) in DeepTutor Book Flow

CVE-2026-51876

Deferred

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-285

Impact:

Unauthorized modification of persisted book 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

DeepTutor 1.4.0 contains an authorization bypass in the book confirmation workflow. An unauthenticated or unauthorized caller who obtains a valid public book identifier may submit a confirmation request that overwrites stored metadata and spine content for an existing book.

DeepTutor 1.4.0 contains an authorization bypass in the book confirmation workflow. An unauthenticated or unauthorized caller who obtains a valid public book identifier may submit a confirmation request that overwrites stored metadata and spine content for an existing book.

Affected context

The vulnerability occurs in DeepTutor's book confirmation flow when the endpoint accepts a book identifier without reliably verifying that the requester is authorized to modify the associated book. Deployments are at risk when book identifiers are exposed or predictable and server-side authorization checks are missing or incomplete before persistence operations.

The vulnerability occurs in DeepTutor's book confirmation flow when the endpoint accepts a book identifier without reliably verifying that the requester is authorized to modify the associated book. Deployments are at risk when book identifiers are exposed or predictable and server-side authorization checks are missing or incomplete before persistence operations.

Exploit preconditions

  • Attack surface: The book confirmation request endpoint
  • Required access: No authentication may be required; otherwise, access as a user lacking permission for the target book may be sufficient
  • Required information: A valid book_id for an existing book must be available
  • Trigger point: Submission of a confirm-proposal request
  • Why exploitation is possible: The workflow does not consistently bind the requested book to an authorized owner, session, or permitted account before updating persistent content
  • Attack surface: The book confirmation request endpoint
  • Required access: No authentication may be required; otherwise, access as a user lacking permission for the target book may be sufficient
  • Required information: A valid book_id for an existing book must be available
  • Trigger point: Submission of a confirm-proposal request
  • Why exploitation is possible: The workflow does not consistently bind the requested book to an authorized owner, session, or permitted account before updating persistent content

Why this happens

The underlying defect is missing or ineffective server-side authorization in an object-level operation. The application uses a caller-controlled object reference, such as book_id, to identify a resource but fails to verify whether the caller has permission to confirm or modify that specific resource. This behavior maps to CWE-285: Improper Authorization, and may also resemble an insecure direct object reference when object access is controlled primarily by an exposed identifier.

The underlying defect is missing or ineffective server-side authorization in an object-level operation. The application uses a caller-controlled object reference, such as book_id, to identify a resource but fails to verify whether the caller has permission to confirm or modify that specific resource. This behavior maps to CWE-285: Improper Authorization, and may also resemble an insecure direct object reference when object access is controlled primarily by an exposed identifier.

Potential impact

  • An unauthorized party may overwrite book metadata
  • Existing spine content may be altered or replaced
  • Content integrity and user trust may be compromised
  • Malicious changes could propagate to downstream workflows or users
  • Attackers could cause data loss, corruption, or service disruption
  • An unauthorized party may overwrite book metadata
  • Existing spine content may be altered or replaced
  • Content integrity and user trust may be compromised
  • Malicious changes could propagate to downstream workflows or users
  • Attackers could cause data loss, corruption, or service disruption

General mitigation guidance

Mitigation generally centers on enforcing authorization at the resource and action level before any confirmation or persistence operation.

Common defensive patterns include:

  • Performing server-side object-level authorization for every book confirmation request
  • Binding book records to an authenticated owner, tenant, or permitted role
  • Treating public or opaque identifiers as references rather than permission grants
  • Rechecking authorization immediately before writing metadata or spine content
  • Applying least-privilege access to service accounts and data stores
  • Using transaction controls, validation, and audit records for sensitive content changes
  • Reducing unnecessary exposure of resource identifiers and confirmation endpoints

Mitigation generally centers on enforcing authorization at the resource and action level before any confirmation or persistence operation.

Common defensive patterns include:

  • Performing server-side object-level authorization for every book confirmation request
  • Binding book records to an authenticated owner, tenant, or permitted role
  • Treating public or opaque identifiers as references rather than permission grants
  • Rechecking authorization immediately before writing metadata or spine content
  • Applying least-privilege access to service accounts and data stores
  • Using transaction controls, validation, and audit records for sensitive content changes
  • Reducing unnecessary exposure of resource identifiers and confirmation endpoints

How teams detect issues like this

Organizations can look for authorization gaps through:

  • Static analysis and code review checks for database writes keyed only by request-supplied identifiers
  • Review of endpoint handlers that lack explicit ownership, tenant, role, or capability checks
  • Tests that attempt cross-user and cross-tenant access to existing object identifiers
  • API gateway and application policies requiring authentication and authorization metadata for state-changing routes
  • Audit monitoring for confirmation requests that modify resources outside the caller's normal scope
  • Automated security testing and code review tools that identify missing object-level authorization checks

Organizations can look for authorization gaps through:

  • Static analysis and code review checks for database writes keyed only by request-supplied identifiers
  • Review of endpoint handlers that lack explicit ownership, tenant, role, or capability checks
  • Tests that attempt cross-user and cross-tenant access to existing object identifiers
  • API gateway and application policies requiring authentication and authorization metadata for state-changing routes
  • Audit monitoring for confirmation requests that modify resources outside the caller's normal scope
  • Automated security testing and code review tools that identify missing object-level authorization checks

Sources

SourceLink
gist.github.comgist.github.com/Ro1ME/c5685936179edcbf942f3fdd745d1473
github.comgithub.com/HKUDS/DeepTutor/issues/514

Frequently asked

questions

Yes. If the book confirmation endpoint is reachable over the application's API and authorization is not enforced correctly, a remote caller may be able to submit a request using a valid book_id.

Not necessarily. The reported behavior allows an unauthenticated or unauthorized caller to target an existing book, although deployment-specific controls may affect practical reachability.

Enforce server-side, object-level authorization before processing the confirmation and again before persisting any metadata or spine changes. The check should bind the requested book to the caller's authorized identity, role, tenant, or capability.

Treat every client-supplied identifier as untrusted, require authorization tests for state-changing endpoints, and include cross-account access cases in automated and manual security reviews.

Yes. If the book confirmation endpoint is reachable over the application's API and authorization is not enforced correctly, a remote caller may be able to submit a request using a valid book_id.

Not necessarily. The reported behavior allows an unauthenticated or unauthorized caller to target an existing book, although deployment-specific controls may affect practical reachability.

Enforce server-side, object-level authorization before processing the confirmation and again before persisting any metadata or spine changes. The check should bind the requested book to the caller's authorized identity, role, tenant, or capability.

Treat every client-supplied identifier as untrusted, require authorization tests for state-changing endpoints, and include cross-account access cases in automated and manual security reviews.

Find out what's already
exploitable in your codebase.