Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-12288

CVE-2025-12288: Bdtask Pharmacare Auth Bypass Vulnerability

CVE-2025-12288 is an authorization bypass vulnerability in Bdtask Pharmacare affecting versions up to 9.4. Attackers can exploit the User Profile Handler to bypass authentication remotely. This article covers technical details, affected versions, impact, and mitigation strategies.

Published:

CVE-2025-12288 Overview

CVE-2025-12288 is an authorization bypass vulnerability in Bdtask Pharmacy Management System (also known as Pharmacare) up to version 9.4. The flaw resides in the /user/edit_user/ endpoint of the User Profile Handler component. An authenticated remote attacker can manipulate request parameters to bypass authorization checks and modify user profiles belonging to other accounts. The vulnerability is tracked under CWE-285 (Improper Authorization) and CWE-639 (Authorization Bypass Through User-Controlled Key). A public proof-of-concept exists, and the vendor did not respond to disclosure attempts.

Critical Impact

Authenticated remote attackers can bypass authorization on the user profile endpoint and modify other users' account data without privilege escalation requirements beyond a low-privileged session.

Affected Products

  • Bdtask Pharmacy Management System (Pharmacare) versions up to and including 9.4
  • Deployments exposing the /user/edit_user/ endpoint to network access
  • Multi-tenant installations sharing a single Pharmacare instance

Discovery Timeline

  • 2025-10-27 - CVE-2025-12288 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2025-12288

Vulnerability Analysis

The vulnerability exists in the User Profile Handler component of Pharmacare. The /user/edit_user/ route accepts a user identifier as part of the request but fails to verify that the identifier belongs to the authenticated session. Because the application trusts a client-supplied key, any low-privileged user can substitute another account's identifier and invoke the edit operation. The result is an Insecure Direct Object Reference combined with missing server-side authorization enforcement. Exploitation does not require chaining additional flaws or user interaction. The public proof-of-concept on GitHub demonstrates the manipulation against a default installation.

Root Cause

The root cause is the absence of an authorization check that ties the target user_id parameter to the session-bound identity. The handler performs the database update based solely on the value submitted in the request body, which the attacker controls. This pattern matches CWE-639, where an authorization decision relies on a user-controlled key rather than a server-side session attribute or access control list.

Attack Vector

The attack is remote and requires only a valid low-privileged account on the target instance. An attacker submits a crafted HTTP request to /user/edit_user/ containing the victim's user identifier alongside attacker-supplied profile fields. The server processes the update without confirming ownership. See the GitHub PoC for CVE-2025-12288 and VulDB entry #329956 for request-level technical details.

Detection Methods for CVE-2025-12288

Indicators of Compromise

  • Unexpected modifications to user profile fields (name, email, contact, role) without corresponding administrator activity
  • HTTP POST requests to /user/edit_user/ where the user_id parameter differs from the session-authenticated user
  • Authentication anomalies following profile edits, such as password resets initiated from changed email addresses

Detection Strategies

  • Audit application logs for requests to /user/edit_user/ and correlate the submitted user identifier with the session owner
  • Enable database-level auditing on the users table to capture row-level updates and the originating session
  • Deploy web application firewall rules that flag profile-edit requests where the path parameter or body identifier does not match the authenticated principal

Monitoring Recommendations

  • Review historical access logs for any prior exploitation given the public proof-of-concept availability
  • Alert on rapid sequential profile edits across different user_id values from a single session
  • Monitor support channels for user reports of unauthorized profile or credential changes

How to Mitigate CVE-2025-12288

Immediate Actions Required

  • Restrict network access to the Pharmacare application to trusted networks or VPN until a patch is available
  • Disable or rate-limit the /user/edit_user/ endpoint at the reverse proxy layer
  • Force a password reset and review profile data for all accounts to identify unauthorized modifications

Patch Information

No vendor patch is available. According to the VulDB advisory, Bdtask was contacted but did not respond to the disclosure. Organizations running Pharmacare 9.4 or earlier should treat the issue as unpatched and apply compensating controls.

Workarounds

  • Implement a reverse-proxy authorization rule that validates the session cookie against the user_id submitted to /user/edit_user/ and blocks mismatches
  • Restrict the application to administrator-only access while a vendor fix is pending
  • If source-level changes are feasible, add a server-side check in the edit handler that compares the request user_id against the session identity before executing the update

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.