CVE-2022-31112

8.2 HIGH

📋 TL;DR

Parse Server LiveQuery improperly exposes protected fields to clients, allowing unauthorized access to sensitive data. This affects all Parse Server deployments using LiveQuery functionality with protected fields defined. Users running affected versions are vulnerable to information disclosure.

💻 Affected Systems

Products:
  • Parse Server
Versions: All versions before 5.2.4
Operating Systems: Any OS running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments using LiveQuery functionality with protected fields defined in Parse schemas.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Exposure of sensitive protected fields like passwords, API keys, or personal data to unauthorized clients, leading to data breaches and compliance violations.

🟠

Likely Case

Accidental exposure of protected fields containing business logic or configuration data that should remain server-side only.

🟢

If Mitigated

No data exposure if protected fields are properly filtered or if LiveQuery is disabled for sensitive classes.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires client access to LiveQuery subscriptions but no special authentication beyond normal LiveQuery access.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 5.2.4

Vendor Advisory: https://github.com/parse-community/parse-server/releases/tag/5.2.4

Restart Required: Yes

Instructions:

1. Update Parse Server to version 5.2.4 or later using npm: 'npm update parse-server' 2. Restart the Parse Server application 3. Verify the update with 'npm list parse-server'

🔧 Temporary Workarounds

Manual protected field filtering

all

Use Parse.Cloud.afterLiveQueryEvent to manually remove protected fields from LiveQuery responses

Parse.Cloud.afterLiveQueryEvent('YourClassName', (request) => { delete request.object.get('protectedField'); });

🧯 If You Can't Patch

  • Disable LiveQuery for classes containing protected fields
  • Implement network segmentation to restrict LiveQuery client access

🔍 How to Verify

Check if Vulnerable:

Check if Parse Server version is below 5.2.4 and LiveQuery is enabled with protected fields defined.

Check Version:

npm list parse-server | grep parse-server

Verify Fix Applied:

After updating to 5.2.4+, test that protected fields are no longer visible in LiveQuery responses.

📡 Detection & Monitoring

Log Indicators:

  • Unusual LiveQuery subscription patterns to classes with protected fields
  • Increased data volume in LiveQuery responses

Network Indicators:

  • Clients accessing LiveQuery endpoints and receiving unexpected field data

SIEM Query:

source="parse-server" AND "LiveQuery" AND ("protected" OR "sensitive")

🔗 References

📤 Share & Export