Target: https://borrower-portal-sec.saltlndg.io/jumio
Issue: The page uses window.parent.postMessage(message, '*')
with wildcard origin
Impact: Any malicious website can frame this page and intercept sensitive verification messages
CVSS: 5.3 (Medium) - CWE-345: Insufficient Verification of Data Authenticity
message
event listenerpostMessage('success'/'failure', '*')
// From: https://borrower-portal-sec.saltlndg.io/jumio
const success = getQueryStringValue('transactionStatus') === 'SUCCESS'
const referenceId = getQueryStringValue('referenceId')
window.axios.post(endpointUrl).then(function() {
if (success) {
// ⚠️ VULNERABILITY: Wildcard origin '*' accepts any receiver
window.parent.postMessage('success', '*');
} else {
window.parent.postMessage('failure', '*');
}
}).catch(function() {
if (success) {
window.parent.postMessage('success', '*'); // ⚠️ Insecure
} else {
window.parent.postMessage('failure', '*'); // ⚠️ Insecure
}
})
Fix: Specify the exact target origin instead of wildcard:
// ✅ SECURE: Specify exact origin
window.parent.postMessage('success', 'https://borrower-portal-sec.saltlndg.io');
// ❌ INSECURE: Never use wildcard for sensitive data
window.parent.postMessage('success', '*');
Additional Recommendations: