{"id":81021,"date":"2025-10-03T07:44:50","date_gmt":"2025-10-03T07:44:50","guid":{"rendered":""},"modified":"2025-11-03T21:09:28","modified_gmt":"2025-11-04T03:09:28","slug":"cve-2025-59934-critical-vulnerability-in-formbricks-prior-to-version-4-0-1-missing-jwt-signature-verification","status":"publish","type":"post","link":"https:\/\/www.ameeba.com\/blog\/cve-2025-59934-critical-vulnerability-in-formbricks-prior-to-version-4-0-1-missing-jwt-signature-verification\/","title":{"rendered":"<strong>CVE-2025-59934: Critical Vulnerability in Formbricks Prior to Version 4.0.1 &#8211; Missing JWT Signature Verification<\/strong>"},"content":{"rendered":"<p><strong>Overview<\/strong><\/p>\n<p>The cybersecurity industry has identified a critical vulnerability, CVE-2025-59934, within Formbricks, an open-source alternative to Qualtrics. This vulnerability, which primarily affects versions of Formbricks prior to 4.0.1, involves a missing JSON Web Token (JWT) signature verification. The severity of this issue is underscored by the <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-9443-buffer-overflow-vulnerability-in-tenda-ch22-1-0-0-1-potentially-leads-to-system-compromise\/\"  data-wpil-monitor-id=\"89028\">potential for system<\/a> compromise and data leakage, putting user privacy and security at high risk. The <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-25737-critical-vulnerability-in-kapsch-trafficcom-rsus-due-to-lack-of-secure-password-requirements\/\"  data-wpil-monitor-id=\"89230\">vulnerability exists in a crucial security<\/a> layer of Formbricks, making it an issue of paramount importance.<\/p>\n<p><strong>Vulnerability Summary<\/strong><\/p>\n<p>CVE ID: CVE-2025-59934<br \/>\nSeverity: Critical (9.4 CVSS Score)<br \/>\nAttack Vector: Network<br \/>\nPrivileges Required: Low<br \/>\nUser Interaction: Required<br \/>\nImpact: <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-9364-critical-open-database-issue-resulting-in-potential-system-compromise\/\"  data-wpil-monitor-id=\"89048\">Potential system<\/a> compromise or data leakage<\/p>\n<p><strong>Affected Products<\/strong><\/p><div id=\"ameeb-3539591260\" class=\"ameeb-content-2 ameeb-entity-placement\"><div style=\"border-left: 4px solid #555; padding-left: 20px; margin: 48px 0; font-family: Roboto, sans-serif; color: #ffffff; line-height: 1.6; max-width: 700px;\">\r\n  <h2 style=\"margin-top: 0; font-size: 20px; font-weight: 600; display: flex; align-items: center;\">\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\" style=\"display: inline-flex; align-items: center; margin-right: 8px;\">\r\n      <img decoding=\"async\" src=\"https:\/\/www.ameeba.com\/blog\/wp-content\/uploads\/2025\/10\/Best-App-icon-Ameeba.png\" alt=\"Ameeba Chat Icon\" style=\"width: 40px; height: 40px;\" \/>\r\n    <\/a>\r\n    A new way to communicate\r\n  <\/h2>\r\n\r\n  <p style=\"margin-bottom: 12px;\">\r\n    Ameeba Chat is built on encrypted identity, not personal profiles.\r\n  <\/p>\r\n\r\n  <p style=\"margin-bottom: 16px;\">\r\n    Message, call, share files, and coordinate with identities kept separate.\r\n  <\/p>\r\n\r\n  <ul style=\"list-style: none; padding-left: 0; margin-bottom: 20px;\">\r\n    <li>\u2022 Encrypted identity<\/li>\r\n    <li>\u2022 Ameeba Chat authenticates access<\/li>\r\n    <li>\u2022 Aliases and categories<\/li>\r\n    <li>\u2022 End-to-end encrypted chat, calls, and files<\/li>\r\n    <li>\u2022 Secure notes for sensitive information<\/li>\r\n  <\/ul>\r\n\r\n  <p style=\"font-style: italic; font-weight: 600; margin-bottom: 24px;\">\r\n    Private communication, rethought.\r\n  <\/p>\r\n\r\n  <div style=\"display: flex; flex-wrap: wrap; gap: 12px;\">\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\/download\" style=\"background-color: #ffffff; color: #000000; padding: 10px 20px; text-decoration: none; border-radius: 6px; font-weight: 500;\">Download Ameeba Chat<\/a>\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\" style=\"border: 1px solid #ffffff; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 6px; font-weight: 500;\">Learn More<\/a>\r\n  <\/div>\r\n<\/div>\r\n<\/div>\n<p>Product | Affected Versions<\/p>\n<p>Formbricks | Versions prior to 4.0.1<\/p>\n<p><strong>How the Exploit Works<\/strong><\/p>\n<p>The <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-54236-critical-improper-input-validation-vulnerability-in-adobe-commerce-leading-to-session-takeover\/\"  data-wpil-monitor-id=\"88821\">vulnerability stems from a token validation<\/a> routine that only decodes JWTs (jwt.decode) without verifying their signatures. In this scenario, both the email verification token login path and the <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-43930-hashview-0-8-1-account-takeover-via-password-reset-vulnerability\/\"  data-wpil-monitor-id=\"91346\">password reset<\/a> server action use the same validator, which does not check the token\u2019s signature, expiration, issuer, or audience. If an attacker gains knowledge of a user&#8217;s id, they can generate an arbitrary JWT with an &#8216;alg: &#8220;none&#8221;&#8216; header. This token can then be used to <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-6454-authenticated-user-exploit-in-gitlab-ce-ee-through-proxy-environments\/\"  data-wpil-monitor-id=\"90742\">authenticate as the user<\/a> and reset the user&#8217;s password.<\/p>\n<p><strong>Conceptual Example Code<\/strong><\/p><div id=\"ameeb-3430721861\" class=\"ameeb-content ameeb-entity-placement\"><div class=\"poptin-embedded\" data-id=\"f6b387694f681\"><\/div>\r\n\r\n\r\n\r\n\r\n\r\n<\/div>\n<p>Here is a hypothetical example of how an attacker could exploit this vulnerability:<\/p>\n<pre><code class=\"\" data-line=\"\">POST \/password\/reset HTTP\/1.1\nHost: formbricks.example.com\nContent-Type: application\/json\nAuthorization: Bearer eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJ1c2VyLmlkIjoiMTIzNDUifQ.\n{ &quot;new_password&quot;: &quot;new_password_for_victim&quot; }<\/code><\/pre>\n<p>In this example, the &#8220;Authorization&#8221; header contains a JWT token with the &#8220;none&#8221; algorithm specified and a user.id of &#8220;12345&#8221;. The payload of the POST request is a new password for the user, effectively allowing the attacker to <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-9114-critical-arbitrary-user-password-change-vulnerability-in-doccure-wordpress-theme\/\"  data-wpil-monitor-id=\"88271\">change the user&#8217;s password<\/a>.<\/p>\n<p><strong>Mitigation<\/strong><\/p>\n<p>The <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-30325-integer-overflow-vulnerability-in-photoshop-desktop-versions-leading-to-potential-system-compromise\/\"  data-wpil-monitor-id=\"91636\">vulnerability has been patched in version<\/a> 4.0.1 of Formbricks. It is strongly recommended that users upgrade to this version or later. As a temporary mitigation, users could employ a Web Application Firewall (WAF) or an Intrusion Detection System (IDS) to monitor for and block suspicious activities <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-48817-exploiting-relative-path-traversal-in-remote-desktop-clients\/\"  data-wpil-monitor-id=\"92337\">related to this exploit<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview The cybersecurity industry has identified a critical vulnerability, CVE-2025-59934, within Formbricks, an open-source alternative to Qualtrics. This vulnerability, which primarily affects versions of Formbricks prior to 4.0.1, involves a missing JSON Web Token (JWT) signature verification. The severity of this issue is underscored by the potential for system compromise and data leakage, putting user [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"footnotes":""},"categories":[1],"tags":[],"vendor":[],"product":[],"attack_vector":[],"asset_type":[],"severity":[],"exploit_status":[],"class_list":["post-81021","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/81021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/comments?post=81021"}],"version-history":[{"count":9,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/81021\/revisions"}],"predecessor-version":[{"id":85560,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/81021\/revisions\/85560"}],"wp:attachment":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/media?parent=81021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/categories?post=81021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/tags?post=81021"},{"taxonomy":"vendor","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/vendor?post=81021"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/product?post=81021"},{"taxonomy":"attack_vector","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/attack_vector?post=81021"},{"taxonomy":"asset_type","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/asset_type?post=81021"},{"taxonomy":"severity","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/severity?post=81021"},{"taxonomy":"exploit_status","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/exploit_status?post=81021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}