{"id":"GHSA-wf6c-hrhf-86cw","summary":"NocoDB Vulnerable to Reflected Cross-Site Scripting on Reset Password Page","details":"### Summary\n\nThe API endpoint related to the password reset function is vulnerable to Reflected Cross-Site-Scripting. \n\n### Details\n\nThroughout the source-code analysis, it has been found that the endpoint /api/v1/db/auth/password/reset/:tokenId is vulnerable to Reflected Cross-Site-Scripting.\n \nThe flaw occurs due to implementation of the client-side template engine ejs, specifically on file resetPassword.ts where the template is using the insecure function “\u003c%-“ \nhttps://github.com/nocodb/nocodb/blob/ba5a191b33259d984fc92df225f7d82ede2ddb56/packages/nocodb/src/modules/auth/ui/auth/resetPassword.ts#L71  \nwhich is rendered by the function renderPasswordReset: \nhttps://github.com/nocodb/nocodb/blob/ba5a191b33259d984fc92df225f7d82ede2ddb56/packages/nocodb/src/modules/auth/auth.controller.ts#L251\n\n### PoC\n\nSend the request below to a vulnerable instance: \n`/api/v1/db/auth/password/reset/asdsad%3C%2F%73%63%72%69%70%74%3E%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E/`\n\n![image](https://github.com/user-attachments/assets/28d8e7c6-efb9-49df-b049-56dab229d74f)\n\n### Impact\n\nThe vulnerability affect end-users, allowing an attacker to craft and send a malicious link to the victim which leads running script on their browser.\n\n### Credits\n[l34k3d](https://github.com/xL34K3D)\n[ottoboni](https://github.com/gabrielott)","aliases":["CVE-2025-27506"],"modified":"2025-08-26T15:39:59Z","published":"2025-03-06T18:52:17Z","database_specific":{"severity":"MODERATE","github_reviewed":true,"github_reviewed_at":"2025-03-06T18:52:17Z","nvd_published_at":"2025-03-06T19:15:27Z","cwe_ids":["CWE-79"]},"references":[{"type":"WEB","url":"https://github.com/nocodb/nocodb/security/advisories/GHSA-wf6c-hrhf-86cw"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-27506"},{"type":"WEB","url":"https://github.com/nocodb/nocodb/commit/ea821edb133e621e26183ae65c8ff9ee5d6f2723"},{"type":"PACKAGE","url":"https://github.com/nocodb/nocodb"},{"type":"WEB","url":"https://github.com/nocodb/nocodb/blob/ba5a191b33259d984fc92df225f7d82ede2ddb56/packages/nocodb/src/modules/auth/auth.controller.ts#L251"},{"type":"WEB","url":"https://github.com/nocodb/nocodb/blob/ba5a191b33259d984fc92df225f7d82ede2ddb56/packages/nocodb/src/modules/auth/ui/auth/resetPassword.ts#L71"}],"affected":[{"package":{"name":"nocodb","ecosystem":"npm","purl":"pkg:npm/nocodb"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.258.0"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/03/GHSA-wf6c-hrhf-86cw/GHSA-wf6c-hrhf-86cw.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}]}