CVE-2021-47885

6.4 MEDIUM

📋 TL;DR

Multiple payment terminal versions contain non-persistent cross-site scripting (XSS) vulnerabilities in billing and payment information input fields. Attackers can inject malicious script code through vulnerable parameters to manipulate client-side requests, potentially enabling session hijacking or phishing attacks against payment terminal users.

💻 Affected Systems

Products:
  • Authorize.net Payment Terminal
  • PayPal Pro Payment Terminal
  • Stripe Payment Terminal
Versions: Multiple versions (specific versions not provided in references)
Operating Systems: Not specified in provided references
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability affects billing and payment information input fields across multiple payment terminal products.

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could hijack user sessions, steal payment credentials, redirect users to phishing sites, or perform unauthorized transactions by manipulating client-side requests.

🟠

Likely Case

Attackers would typically use this for session hijacking or phishing attacks against payment terminal users, potentially capturing payment information or redirecting to malicious sites.

🟢

If Mitigated

With proper input validation and output encoding, the vulnerability would be prevented, maintaining normal payment processing functionality.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Non-persistent XSS typically requires user interaction (clicking a malicious link) but can be exploited without authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not specified in provided references

Vendor Advisory: Not provided in references

Restart Required: No

Instructions:

1. Check vendor websites for security updates. 2. Apply any available patches from Authorize.net, PayPal, or Stripe. 3. Verify the fix by testing input fields for XSS vulnerabilities.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement server-side input validation and output encoding for all user-supplied data in payment fields.

Content Security Policy

all

Implement a strict Content Security Policy (CSP) to prevent execution of unauthorized scripts.

🧯 If You Can't Patch

  • Implement a Web Application Firewall (WAF) with XSS protection rules
  • Monitor for suspicious input patterns in payment field submissions

🔍 How to Verify

Check if Vulnerable:

Test payment terminal input fields with XSS payloads like <script>alert('XSS')</script> and observe if script executes.

Check Version:

Check payment terminal administration interface or documentation for version information.

Verify Fix Applied:

Retest with XSS payloads after applying fixes; scripts should not execute and input should be properly sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual script tags or JavaScript in payment field submissions
  • Multiple failed payment attempts with suspicious input

Network Indicators:

  • HTTP requests containing script tags or JavaScript in POST parameters
  • Unusual redirects from payment pages

SIEM Query:

source="payment_terminal" AND (http_request:*<script* OR http_request:*javascript:* OR http_request:*alert(*)

🔗 References

📤 Share & Export