Peppermint-Lab / peppermint

An open source ticket management & help desk solution. A zendesk/freshdesk alternative
https://peppermint.sh
Other
1.95k stars 205 forks source link

Security Vulnerability Report - Unauthorized Access to Sensitive User Information #237

Closed 3zizme closed 6 months ago

3zizme commented 6 months ago

Dear Peppermint Ticket Management Security Team,

I am writing to report a critical security vulnerability I discovered in the Peppermint Ticket Management system, an open-source ticket management software. This vulnerability involves unauthorized access to sensitive user information through an exposed API endpoint, without the need for any form of user authentication. Please find the details of my findings below:

Summary Vulnerability in Peppermint Ticket Management: Unauthorized access to sensitive user information without authentication via the /api/v1/users/all endpoint.

Product Information Product Name: Peppermint Ticket Management Version Affected: 0.4.2 Component Affected: API Endpoint /api/v1/users/all Vulnerability Details An unauthorized access vulnerability exists within the /api/v1/users/all API endpoint. This endpoint is accessible without any form of authentication, permitting unauthorized users to retrieve a comprehensive list of all user profiles, including their hashed passwords, email addresses, and additional personal information.

Steps to Reproduce Issue a GET request to the endpoint http://[host]:[port]/api/v1/users/all without providing any authentication credentials. Note that the response includes sensitive information pertaining to all users in the system. Impact This vulnerability represents a substantial risk to the privacy and security of user data within the Peppermint Ticket Management system. Exploitation of this issue could lead to severe consequences, such as account takeovers, phishing attacks, or identity theft.

Recommended Mitigation To address this vulnerability effectively, I recommend the following immediate actions:

Introduce mandatory authentication checks for the /api/v1/users/all API endpoint to ensure that only authenticated and authorized users can access user information. Conduct a comprehensive security audit of the application to identify and remediate any other potential authentication and authorization flaws. Disclosure Timeline Discovery Date: 2024/3/15 Report Date: 2024/3/15 I am committed to responsible disclosure and have not disclosed this vulnerability outside of this communication. I am hopeful that this report will assist in securing the Peppermint Ticket Management system against unauthorized access. Please contact me if you require further information or assistance in addressing this issue.

Thank you for your prompt attention to this critical security matter.

Best regards,

Abdulaziz Almadhi @3zizme_

potts99 commented 6 months ago

Hi, thanks for your report @3zizme

i dont see this error, when i query without creds i see an error

3zizme commented 6 months ago

Hi @potts99,

Thank you for your response to my security vulnerability report. It appears there was a slight misunderstanding in the nature of the vulnerability I reported. The issue indeed requires authentication; however, the core problem lies within a privilege escalation flaw. Even when authenticated as a customer—a role with supposedly limited permissions—it’s possible to access all user information without the requisite administrative privileges.

This oversight allows any user with basic customer-level access to view sensitive data intended only for users with higher access levels, thus bypassing the intended security model of the application. My initial report might have missed clarifying that authenticated users, regardless of their role, shouldn’t have access to this endpoint without proper authorization checks based on their role.

I appreciate your engagement and for bringing this aspect to light, which underscores the importance of detailed communication in security reports. I hope this clarifies the situation, and I urge the Peppermint Ticket Management Security Team to consider both authentication and authorization controls to rectify this vulnerability effectively.

Best regards,

Abdulaziz Almadhi @3zizme_

potts99 commented 6 months ago

ahhh i understand you now.

potts99 commented 6 months ago

fixed, this needs to be accessible to everyone, but i have added a select field to only return required info