CVE-2024-46366

8.8 HIGH

📋 TL;DR

This Client-side Template Injection vulnerability in Webkul Krayin CRM allows attackers to inject malicious template code during lead creation, which executes in users' browsers and can lead to privilege escalation. Attackers can gain elevated permissions within the CRM system. All users of Webkul Krayin CRM 1.3.0 are affected.

💻 Affected Systems

Products:
  • Webkul Krayin CRM
Versions: 1.3.0
Operating Systems: All platforms running Krayin CRM
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in the lead creation functionality which is typically enabled by default in CRM deployments.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise where attackers gain administrative privileges, access sensitive customer data, modify system configurations, and potentially pivot to other systems.

🟠

Likely Case

Privilege escalation allowing attackers to access unauthorized CRM functions, steal sensitive lead/customer data, and manipulate business processes.

🟢

If Mitigated

Limited impact with proper input validation and output encoding preventing template injection, restricting attackers to basic user permissions.

🌐 Internet-Facing: HIGH - CRM systems are typically internet-facing for customer/partner access, making them directly accessible to attackers.
🏢 Internal Only: MEDIUM - Internal users could exploit this for privilege escalation, but requires authenticated access to the CRM.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploit requires authenticated access to create leads, but the injection itself is straightforward once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Unknown

Restart Required: No

Instructions:

Check Webkul's official channels for security updates. If no patch is available, implement workarounds immediately.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement strict input validation on all lead creation fields to reject template injection patterns

Implement server-side validation to reject {{, }}, ${, and other template syntax in user inputs

Output Encoding

all

Apply proper output encoding when displaying user-controlled data in templates

Use HTML entity encoding or framework-specific encoding functions for all user inputs in templates

🧯 If You Can't Patch

  • Restrict lead creation permissions to trusted users only
  • Implement WAF rules to block template injection patterns in HTTP requests

🔍 How to Verify

Check if Vulnerable:

Test lead creation with payload containing {{7*7}} and check if 49 appears in rendered output

Check Version:

Check CRM admin panel or package.json for version information

Verify Fix Applied:

Attempt the same test payload and verify it's properly sanitized or rejected

📡 Detection & Monitoring

Log Indicators:

  • Unusual lead creation patterns
  • Template syntax in user input fields
  • Multiple failed privilege escalation attempts

Network Indicators:

  • HTTP POST requests to lead creation endpoints containing template syntax
  • Unusual spike in lead creation activity

SIEM Query:

source="webkul_crm" AND (method="POST" AND uri="/leads/create" AND (body CONTAINS "{{" OR body CONTAINS "}}"))

🔗 References

📤 Share & Export