CVE-2023-27580

7.5 HIGH

📋 TL;DR

CodeIgniter Shield versions before v1.0.0-beta.4 improperly store passwords by using SHA-384 hashing without salt before bcrypt, making password cracking significantly easier. This affects all systems using vulnerable Shield versions for authentication. Attackers who obtain hashed passwords can potentially crack user credentials.

💻 Affected Systems

Products:
  • CodeIgniter Shield
Versions: v1.0.0-beta.3 and earlier
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all installations using Shield's authentication features with default configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Mass credential compromise leading to full system takeover, data breaches, and lateral movement within affected applications.

🟠

Likely Case

Targeted password cracking of specific user accounts obtained through database leaks or other means.

🟢

If Mitigated

Limited impact if passwords are strong and other security controls like MFA, rate limiting, and monitoring are in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires access to hashed passwords from the database, which could be obtained through SQL injection, database breaches, or other means.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v1.0.0-beta.4 or later

Vendor Advisory: https://github.com/codeigniter4/shield/security/advisories/GHSA-c5vj-f36q-p9vg

Restart Required: No

Instructions:

1. Upgrade Shield to v1.0.0-beta.4 or later via Composer: composer require codeigniter4/shield:^1.0.0-beta.4
2. Force all users to reset passwords or implement password rehashing
3. Update all existing password hashes in the database

🔧 Temporary Workarounds

No workarounds available

all

The vulnerability is in the core password storage mechanism with no configuration-based workarounds.

🧯 If You Can't Patch

  • Force immediate password reset for all users and implement account lockout policies
  • Enable multi-factor authentication and monitor for suspicious authentication attempts

🔍 How to Verify

Check if Vulnerable:

Check composer.json or vendor/codeigniter4/shield/ for version below v1.0.0-beta.4

Check Version:

composer show codeigniter4/shield | grep versions

Verify Fix Applied:

Confirm Shield version is v1.0.0-beta.4 or higher and verify password hashes use proper bcrypt with salt

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed login attempts for same account
  • Unusual authentication patterns
  • Database access logs showing password table queries

Network Indicators:

  • Brute force attack patterns against authentication endpoints

SIEM Query:

source="auth.log" ("failed login" OR "authentication failure") | stats count by user, src_ip | where count > 10

🔗 References

📤 Share & Export