CVE-2025-59934
CVE-2025-59934
CVSS Vector
v3.1- Attack Vector
- Network
- Attack Complexity
- Low
- Privileges Required
- None
- User Interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- Low
Description
Formbricks is an open source qualtrics alternative. Prior to version 4.0.1, Formbricks is missing JWT signature verification. This vulnerability stems from a token validation routine that only decodes JWTs (jwt.decode) without verifying their signatures. Both the email verification token login path and the password reset server action use the same validator, which does not check the token’s signature, expiration, issuer, or audience. If an attacker learns the victim’s actual user.id, they can craft an arbitrary JWT with an alg: "none" header and use it to authenticate and reset the victim’s password. This issue has been patched in version 4.0.1.
Comprehensive Technical Analysis of CVE-2025-59934
1. Vulnerability Assessment and Severity Evaluation
CVE ID: CVE-2025-59934 CVSS Score: 9.4
The vulnerability in Formbricks, an open-source alternative to Qualtrics, involves a critical flaw in the JWT (JSON Web Token) validation process. Prior to version 4.0.1, Formbricks fails to verify the signature of JWTs, which is a fundamental security measure. This oversight allows attackers to craft and use arbitrary JWTs, potentially leading to unauthorized access and actions such as password resets.
Severity Evaluation:
- CVSS Score: 9.4 (Critical)
- Impact: High
- Exploitability: High
The high CVSS score reflects the severe impact and ease of exploitation. The lack of JWT signature verification can lead to significant security breaches, including account takeovers.
2. Potential Attack Vectors and Exploitation Methods
Attack Vectors:
- Email Verification Token Login Path: An attacker can intercept or guess the user.id and craft a JWT with an
alg: "none"header to bypass authentication. - Password Reset Server Action: Similarly, an attacker can use a crafted JWT to reset the victim's password, gaining unauthorized access to the account.
Exploitation Methods:
- JWT Crafting: Attackers can create JWTs without a signature, setting the
algheader to"none". - Token Interception: If an attacker can intercept or guess the user.id, they can generate a valid-looking JWT to authenticate as the victim.
3. Affected Systems and Software Versions
Affected Software:
- Formbricks versions prior to 4.0.1
Affected Systems:
- Any system running Formbricks versions earlier than 4.0.1, including but not limited to:
- Web applications using Formbricks for surveys and data collection
- Servers hosting Formbricks instances
4. Recommended Mitigation Strategies
Immediate Actions:
- Upgrade to Version 4.0.1: Ensure all instances of Formbricks are updated to version 4.0.1 or later, where the vulnerability has been patched.
- Implement JWT Signature Verification: Manually verify JWT signatures if an immediate upgrade is not possible.
- Monitor for Suspicious Activity: Increase monitoring for unusual login attempts or password reset activities.
Long-Term Strategies:
- Regular Security Audits: Conduct regular security audits to identify and mitigate similar vulnerabilities.
- User Education: Educate users about the importance of strong, unique passwords and recognizing phishing attempts.
- Multi-Factor Authentication (MFA): Implement MFA to add an extra layer of security.
5. Impact on Cybersecurity Landscape
The discovery of this vulnerability highlights the importance of robust JWT validation mechanisms. It underscores the need for:
- Comprehensive Security Testing: Ensuring that all authentication mechanisms are thoroughly tested.
- Open-Source Security: Increased scrutiny and contribution to open-source projects to identify and fix security issues.
- User Awareness: Enhancing user awareness about the risks associated with weak authentication practices.
6. Technical Details for Security Professionals
Vulnerability Details:
- JWT Validation Flaw: The
jwt.decodefunction is used without verifying the token's signature, expiration, issuer, or audience. - Affected Code: The vulnerability is present in the JWT validation routine, specifically in the
jwt.tsfile.
References:
Mitigation Code Example:
const jwt = require('jsonwebtoken');
function verifyJWT(token, secret) {
try {
const decoded = jwt.verify(token, secret);
return decoded;
} catch (err) {
console.error('JWT verification failed:', err);
return null;
}
}
Conclusion: The CVE-2025-59934 vulnerability in Formbricks underscores the critical importance of proper JWT validation. Organizations using Formbricks should prioritize upgrading to the patched version and implement additional security measures to mitigate risks. Regular security audits and user education are essential to maintaining a robust cybersecurity posture.