CVE-2025-56161

7.5 HIGH

📋 TL;DR

YOSHOP 2.0 exposes sensitive user information through unauthenticated API endpoints. Attackers can retrieve bcrypt password hashes, mobile numbers, and financial data without authentication. All deployments using the vulnerable Goods module are affected.

💻 Affected Systems

Products:
  • YOSHOP 2.0
Versions: 2.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Route names vary per deployment but all call the same vulnerable model logic in the Goods module.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers harvest password hashes for offline cracking, compromise user accounts, access financial data, and potentially pivot to other systems using stolen credentials.

🟠

Likely Case

Mass data exfiltration of user PII and password hashes leading to credential stuffing attacks and privacy violations.

🟢

If Mitigated

Limited exposure if API endpoints are firewalled or behind authentication, but still vulnerable to insider threats.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Simple HTTP GET requests to comment-list endpoints with no authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: None available

Restart Required: No

Instructions:

1. Add $hidden or $visible attributes to User.php model to exclude sensitive fields. 2. Implement field filtering in Comment model's eager loading. 3. Add authentication to comment-list API endpoints.

🔧 Temporary Workarounds

API Endpoint Restriction

all

Block unauthenticated access to comment-list endpoints via web server or application firewall

# Example nginx location block
location ~* /api/goods\.pinglun/list {
    deny all;
}

Model Field Filtering

all

Modify Comment model to explicitly select only non-sensitive fields when loading User relations

// In Comment model, replace eager loading with:
$this->with(['user' => function($query) {
    $query->select('id', 'name', 'email'); // Only safe fields
}])

🧯 If You Can't Patch

  • Implement network segmentation to restrict API endpoint access to trusted sources only
  • Deploy WAF rules to detect and block requests attempting to access sensitive user fields

🔍 How to Verify

Check if Vulnerable:

Send GET request to /api/goods.pinglun/list (or similar endpoint) and check if response contains password_hash, mobile, pay_money, or expend_money fields

Check Version:

Check YOSHOP version in application configuration or composer.json

Verify Fix Applied:

After applying fixes, verify same endpoint no longer returns sensitive fields and requires authentication

📡 Detection & Monitoring

Log Indicators:

  • Unusual volume of requests to comment-list endpoints
  • Requests from unexpected IPs to API endpoints

Network Indicators:

  • HTTP GET requests to paths containing 'goods.pinglun' or similar patterns
  • Responses containing bcrypt hash patterns ($2a$, $2b$, $2y$)

SIEM Query:

http.method:GET AND (http.uri:*goods*pinglun* OR http.uri:*comment*list*) AND NOT user.authenticated:true

🔗 References

📤 Share & Export