CVE-2025-25777

8.0 HIGH

📋 TL;DR

This IDOR vulnerability in Codeastro Bus Ticket Booking System v1.0 allows attackers to access other users' profiles by manipulating user IDs in URLs. The system lacks proper authorization checks, enabling unauthorized viewing of sensitive user data. All deployments using the vulnerable version are affected.

💻 Affected Systems

Products:
  • Codeastro Bus Ticket Booking System
Versions: v1.0
Operating Systems: Any OS running PHP with CodeIgniter
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all installations of v1.0 regardless of configuration. Requires PHP with CodeIgniter framework.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Mass data breach exposing all user profiles including personal information, payment details, and booking history, potentially leading to identity theft and financial fraud.

🟠

Likely Case

Unauthorized access to individual user profiles, exposing personal information and booking history, which could be used for targeted attacks or privacy violations.

🟢

If Mitigated

Limited impact with proper access controls, potentially exposing only non-sensitive profile information if other security layers exist.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but minimal technical skill. Public GitHub repository contains proof-of-concept.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: None available

Restart Required: No

Instructions:

1. Check vendor website for updates. 2. If no patch, implement server-side authorization checks. 3. Validate user sessions match requested user IDs. 4. Implement proper access control lists.

🔧 Temporary Workarounds

Implement Server-Side Authorization

all

Add server-side checks to verify authenticated user matches requested user ID before returning profile data.

Modify profile controller to compare session user_id with requested user_id

Use UUIDs Instead of Sequential IDs

all

Replace predictable sequential user IDs with random UUIDs to make ID guessing difficult.

ALTER TABLE users MODIFY user_id VARCHAR(36) DEFAULT UUID();

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to detect and block IDOR patterns
  • Restrict access to profile endpoints using network segmentation and IP whitelisting

🔍 How to Verify

Check if Vulnerable:

1. Log in as user A. 2. Access profile endpoint with user B's ID in URL parameter. 3. If user B's profile loads, system is vulnerable.

Check Version:

Check system version in admin panel or readme files

Verify Fix Applied:

Repeat vulnerability check steps; system should return access denied or redirect to proper user's profile.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authorization attempts
  • Rapid sequential access to different user IDs from same session
  • Access to user profiles with mismatched session IDs

Network Indicators:

  • HTTP requests with manipulated user_id parameters
  • Unusual pattern of profile endpoint access

SIEM Query:

source="web_logs" AND (uri_path="/profile/*" OR uri_path="/user/*") AND status_code=200 AND user_agent_contains="curl" OR "wget"

🔗 References

📤 Share & Export