CVE-2019-20062

9.8 CRITICAL

📋 TL;DR

This vulnerability in YetiShare allows attackers to reset user passwords using leaked password reset hashes that never expire. It affects YetiShare installations from version 3.5.2 through 4.5.4. Attackers can gain unauthorized access to user accounts if they obtain these reset tokens.

💻 Affected Systems

Products:
  • MFScripts YetiShare
Versions: 3.5.2 through 4.5.4
Operating Systems: Any OS running YetiShare
Default Config Vulnerable: ⚠️ Yes
Notes: All installations within the affected version range are vulnerable regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover of all users whose password reset tokens have been leaked, potentially leading to data theft, privilege escalation, and lateral movement within the system.

🟠

Likely Case

Targeted account compromise of specific users whose reset tokens have been exposed, leading to unauthorized access to sensitive files and personal data.

🟢

If Mitigated

Limited impact if proper monitoring detects unusual password reset activity and if multi-factor authentication is enforced for sensitive operations.

🌐 Internet-Facing: HIGH - The vulnerability affects password reset functionality typically exposed to the internet, making it directly accessible to attackers.
🏢 Internal Only: MEDIUM - Internal attackers could exploit this if they obtain leaked reset tokens, but external attackers pose greater risk due to internet exposure.

🎯 Exploit Status

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

Exploitation requires obtaining leaked password reset hashes, which could come from database leaks, log files, or other sources. The actual reset process is straightforward once tokens are obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 4.5.4

Vendor Advisory: https://mfscripts.com/

Restart Required: No

Instructions:

1. Upgrade YetiShare to version 4.5.5 or later. 2. Apply the patch from the vendor. 3. Test the password reset functionality to ensure tokens now expire properly.

🔧 Temporary Workarounds

Implement token expiration

all

Manually modify the password reset functionality to enforce token expiration

Modify password reset token generation to include timestamp and implement validation logic

Rate limit password resets

all

Implement rate limiting on password reset requests to reduce brute force attempts

Configure web server or application rate limiting for /reset-password endpoints

🧯 If You Can't Patch

  • Monitor for unusual password reset activity and implement alerting
  • Force password resets for all users and invalidate all existing reset tokens

🔍 How to Verify

Check if Vulnerable:

Check if password reset tokens remain valid indefinitely by testing with an old reset token

Check Version:

Check YetiShare version in admin panel or configuration files

Verify Fix Applied:

Test that password reset tokens expire after a reasonable time period (e.g., 24 hours)

📡 Detection & Monitoring

Log Indicators:

  • Multiple password reset attempts for different users
  • Password resets using old tokens
  • Unusual password reset patterns

Network Indicators:

  • Unusual spikes in requests to password reset endpoints
  • Requests with malformed or old reset tokens

SIEM Query:

source="web_logs" AND (url_path="/reset-password" OR url_path="/password-reset") AND status=200 | stats count by src_ip, user_agent

🔗 References

📤 Share & Export