CVE-2020-15231

9.3 CRITICAL

📋 TL;DR

This vulnerability in mapfish-print allows attackers to exploit JSONP support to execute cross-site scripting (XSS) attacks. Users of mapfish-print versions before 3.24 are affected, potentially enabling attackers to steal session cookies, redirect users, or perform actions on their behalf.

💻 Affected Systems

Products:
  • mapfish-print
Versions: All versions before 3.24
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists when JSONP support is enabled, which may be default in some configurations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator credentials, compromise user accounts, deface websites, or redirect users to malicious sites, potentially leading to full system compromise.

🟠

Likely Case

Attackers inject malicious scripts to steal user session cookies or credentials, enabling account takeover and unauthorized access to sensitive data.

🟢

If Mitigated

With proper input validation and output encoding, the impact is limited to minor data exposure or temporary service disruption.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

XSS via JSONP is a well-known attack vector with public proof-of-concept available in the advisory.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.24

Vendor Advisory: https://github.com/mapfish/mapfish-print/security/advisories/GHSA-w534-q4xf-h5v2

Restart Required: Yes

Instructions:

1. Update mapfish-print to version 3.24 or later. 2. Restart the mapfish-print service. 3. Verify the fix by checking the version and testing JSONP functionality.

🔧 Temporary Workarounds

Disable JSONP Support

all

Disable JSONP functionality in mapfish-print configuration to prevent exploitation.

Modify configuration to set jsonp.enabled=false

Implement Content Security Policy

all

Add Content-Security-Policy headers to restrict script execution sources.

Add 'Content-Security-Policy: script-src 'self'' to HTTP headers

🧯 If You Can't Patch

  • Implement strict input validation and output encoding for all user-supplied data
  • Deploy a web application firewall (WAF) with XSS protection rules

🔍 How to Verify

Check if Vulnerable:

Check mapfish-print version. If version is below 3.24 and JSONP is enabled, the system is vulnerable.

Check Version:

Check application logs or configuration files for version information, or use: curl -v http://your-mapfish-print-server/version

Verify Fix Applied:

Verify mapfish-print version is 3.24 or later and test JSONP endpoints for XSS vulnerabilities.

📡 Detection & Monitoring

Log Indicators:

  • Unusual JSONP requests with script tags or JavaScript payloads
  • Multiple failed JSONP requests from same source

Network Indicators:

  • HTTP requests containing <script> tags in JSONP parameters
  • Unusual traffic patterns to JSONP endpoints

SIEM Query:

source="mapfish-print" AND (uri="*jsonp*" OR uri="*callback=*") AND (content="<script>" OR content="javascript:")

🔗 References

📤 Share & Export