CVE-2020-36284

7.5 HIGH

📋 TL;DR

This vulnerability in Union Pay Android apps allows attackers to bypass payment authentication by generating fraudulent cryptographic signatures using a NULL secret key. Attackers can make purchases without paying on merchant websites and mobile apps. Affected users are those running vulnerable Union Pay Android applications.

💻 Affected Systems

Products:
  • Union Pay Android applications
Versions: Up to version 3.4.93.4.9
Operating Systems: Android
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects Union Pay payment integration in Android apps; other platforms not affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers can make unlimited fraudulent purchases without payment, causing significant financial losses to merchants and payment processors.

🟠

Likely Case

Targeted attacks against specific merchants to obtain goods/services without payment, potentially leading to financial fraud.

🟢

If Mitigated

With proper signature verification and non-NULL secret keys, all fraudulent transactions would be rejected.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

Proof-of-concept code is publicly available, making exploitation straightforward for attackers with basic technical skills.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 3.4.93.4.9

Vendor Advisory: http://mobitec.ie.cuhk.edu.hk/cve_2020/

Restart Required: Yes

Instructions:

1. Update Union Pay Android SDK to latest version. 2. Update all merchant apps using Union Pay integration. 3. Restart applications after update.

🔧 Temporary Workarounds

Disable vulnerable Union Pay integration

android

Temporarily disable Union Pay payment option in merchant apps until patched.

🧯 If You Can't Patch

  • Implement additional server-side transaction verification
  • Monitor for suspicious payment patterns and implement transaction limits

🔍 How to Verify

Check if Vulnerable:

Check Union Pay SDK version in Android app; if version ≤ 3.4.93.4.9, app is vulnerable.

Check Version:

Check Android app manifest or build.gradle for Union Pay SDK version

Verify Fix Applied:

Verify Union Pay SDK version is > 3.4.93.4.9 and test payment authentication with invalid signatures.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authentication attempts followed by successful transactions
  • Transactions with unusual MAC values

Network Indicators:

  • Payment requests with NULL or empty cryptographic signatures
  • Unusual payment patterns from single users

SIEM Query:

payment_auth_failure AND payment_success WITHIN 5min

🔗 References

📤 Share & Export