☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2023-53877

CVE-2023-53877 SQL Injection in Bus Reservation System
📅 PUBLISHED: 2025-12-15 00:00 UTC 🔄 UPDATED: 2026-09-23 19:42 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.45%
👁️
0.45% probability
11.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
9.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-53877 is a SQL injection vulnerability in the Bus Reservation System version 1.1, specifically affecting the pickup_id parameter. An unauthenticated attacker can exploit this flaw via boolean-based, error-based, and time-based blind SQL injection techniques to extract sensitive data from the underlying database, including credentials, passenger information, and booking records. The vulnerability affects web-facing instances of the Bus Reservation System, making it remotely exploitable without authentication, with a CVSS vector currently unavailable (N/A). Given the absence of a confirmed patch from a vendor source, organizations running this software should treat all deployments as vulnerable and apply immediate compensating controls.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The Bus Reservation System version 1.1 is a PHP-based web application commonly deployed on legacy Apache/MySQL stacks for small-to-medium transit operators. The vulnerability resides in the pickup_id parameter, which is processed by the application's booking search functionality. This parameter is passed directly into a SQL query without adequate parameterization or input sanitization, allowing an attacker to manipulate the query structure.

The underlying code flaw, likely present in a file such as search.php or book.php, constructs a query similar to:

SELECT * FROM routes WHERE pickup_id = '$_GET['pickup_id']' AND destination_id = '$_GET['destination_id']'

The absence of prepared statements or escaping functions (e.g., mysqli_real_escape_string, PDO::quote) permits direct injection of SQL syntax through the pickup_id GET parameter. The vulnerability supports three distinct blind SQL injection techniques:

  1. Boolean-based blind injection — An attacker appends AND 1=1 versus AND 1=2 to the parameter and observes differences in page response content or HTTP status codes to infer query results.

  2. Error-based injection — Malicious input such as ' OR EXTRACTVALUE(1,CONCAT(0x7e,(SELECT database())))-- - triggers MySQL error messages that are displayed to the client, leaking data directly in the error output.

  3. Time-based blind injection — Payloads such as ' AND SLEEP(5)-- - introduce measurable response delays, enabling data extraction character-by-character when other inference methods fail.

The attack surface includes any publicly accessible endpoint that accepts the pickup_id parameter without authentication. Typical deployment scenarios include booking portals exposed on ports 80/443 through Apache or Nginx, often with outdated PHP installations (5.x or early 7.x). The database backend is predominantly MySQL/MariaDB, given typical LAMP-stack deployments.

Exploitation Scenarios

Stage 1: Reconnaissance An attacker begins by scanning the internet or a target network for Bus Reservation System instances using search engine dorks such as inurl:"bus_reservation" or by fingerprinting the default page title via HTTP responses. Shodan queries like http.title:"Bus Reservation System" can identify exposed instances. Once located, the attacker probes the application structure by requesting search.php?pickup_id=1 and noting the URL parameter naming convention.

Stage 2: Trigger and Weaponization The attacker confirms the vulnerability by injecting a boolean-based payload:

GET /search.php?pickup_id=1' AND 1=1-- -

A normal response confirms injection. A second request with 1' AND 1=2-- - producing a different response validates the boolean-based blind condition.

Stage 3: Payload Execution (Error-Based Extraction) The attacker escalates to error-based extraction to accelerate data theft:

GET /search.php?pickup_id=1' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema=database())))-- -

MySQL errors return the concatenated table names in the application's error message. The attacker iterates through information_schema.columns to enumerate column names for tables such as users, passwords, and bookings.

Stage 4: Time-Based Extraction If error reporting is disabled, the attacker switches to time-based blind injection:

GET /search.php?pickup_id=1' AND IF(SUBSTRING((SELECT password FROM users LIMIT 0,1),1,1)='a',SLEEP(5),0)-- -

Each character is inferred by measuring the server response latency (5-second delay = character match). A custom script automates this, typically extracting full user credential hashes within minutes.

Stage 5: Post-Exploitation Stolen password hashes are cracked offline using hashcat or John the Ripper. The attacker then logs into the admin panel (if present at /admin/) to access full passenger records, inject PHP backdoors through any file upload functionality, or pivot to the underlying database server to enumerate additional databases. If the database runs with elevated privileges, the attacker may escalate to OS-level access via INTO OUTFILE writing a webshell.

Impact Assessment

The business impact of CVE-2023-53877 is High, despite the unavailable CVSS score. The vulnerability is remotely exploitable without authentication, requiring no user interaction. The attack complexity is low — publicly documented SQL injection techniques are widely available, and even novice attackers can use automated tools like sqlmap to exploit the parameter with the --dbs and --dump flags.

Affected systems: All Bus Reservation System 1.1 instances, particularly those exposed to the internet. Given the prevalence of this open-source script on shared hosting environments, the blast radius includes both the application data (passenger PII, payment details, booking history) and the hosting environment.

Confidentiality impact: Critical — full database disclosure leading to identity theft, credential compromise, and potential financial fraud. Integrity impact: High — attackers can modify bookings, delete records, or plant backdoors. Availability impact: Medium — targeted queries can exhaust database connection pools or cause prolonged lock contention via time-based payloads.

Chained exploitation likelihood: Moderate — successful database compromise combined with weak file-permission configurations can result in Remote Code Execution via SQL INTO OUTFILE writing PHP webshells to the webroot.

Detection Guidance

Sigma Rule

title: Bus Reservation System pickup_id SQL Injection Attempt
id: 5d9c8e2f-a1b4-4c22-9e5d-8a0c3f6d2b7e
status: experimental
description: Detects SQL injection attempts targeting the pickup_id parameter in Bus Reservation System
logsource:
  category: webserver
  product: apache
  service: access_log
detection:
  selection:
    cs-uri-query|contains:
      - 'pickup_id=*'
      - 'pickup_id=1'''
      - 'pickup_id=* AND'
      - 'pickup_id=* OR'
      - 'pickup_id=*SLEEP'
      - 'pickup_id=*UNION'
      - 'pickup_id=*EXTRACTVALUE'
      - 'pickup_id=*information_schema'
  condition: selection
falsepositives:
  - Legitimate use of pick-up location IDs containing single quotes (rare)
  - Monitoring tools that URL-encode SQL keywords without intent
level: high
tags:
  - attack.t1190
  - cve.2023.53877
  - cwe.89

YARA Rule

rule Bus_Reservation_SQLi_pickup_id
{
    meta:
        author = "ValtersIT SOC"
        description = "Detects SQL injection payloads targeting the pickup_id parameter in Bus Reservation System"
        cve = "CVE-2023-53877"
        date = "2025-01-01"
        severity = "high"
    strings:
        $s1 = "pickup_id=" nocase
        $s2 = "EXTRACTVALUE" nocase
        $s3 = "SLEEP(" nocase
        $s4 = "information_schema" nocase
        $s5 = "UNION SELECT" nocase
        $s6 = "AND 1=1" nocase
        $s7 = "AND 1=2" nocase
        $s8 = "OR 1=1" nocase
        $s9 = "version()" nocase
        $s10 = "concat(" nocase
    condition:
        $s1 and any of ($s2, $s3, $s4, $s5, $s6, $s7, $s8, $s9, $s10)
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (
    msg:"ET EXPLOIT Bus Reservation System pickup_id SQL Injection Attempt";
    flow:to_server,established;
    content:"GET"; http_method;
    content:"pickup_id="; http_uri;
    pcre:"/(?:'|\x22|\\)?(?:AND|OR)\s+\d+=\d+/Ui";
    pcre:"/(?:UNION|SLEEP|EXTRACTVALUE|information_schema)/Ui";
    classtype:web-application-attack;
    sid:2023538771;
    rev:1;
    metadata:created_at 2025-01-01, updated_at 2025-01-01, cve 2023-53877, mitre_tactic TA0001;
)

Elastic Detection

sequence by source.ip with maxspan=5m
  [authentication where event.outcome == "success" and process.name : "httpd" or process.name : "nginx"]
  [network where event.type == "start" and destination.port in (80, 443) and 
   url.query : "*pickup_id*" and 
   (url.query : "*AND*1=1*" or url.query : "*AND*1=2*" or url.query : "*SLEEP*" or 
    url.query : "*UNION*SELECT*" or url.query : "*EXTRACTVALUE*")]

Splunk SPL Query

index=web sourcetype=access_combined 
| search uri_path=/* AND uri_query="*pickup_id*" 
| eval is_inject = if(match(uri_query, "(?i)(AND|OR)\s+\d+=\d+|SLEEP\(|UNION\s+SELECT|EXTRACTVALUE|information_schema"), "true", "false") 
| where is_inject="true" 
| stats count min(_time) max(_time) by src_ip uri_path uri_query status

Wazuh OSSEC Rule

<group name="web_application,">
  <rule id="100553" level="10">
    <decoded_as>json</decoded_as>
    <field name="url" type="pcre2">(?i)pickup_id=.*(AND|OR)\s+\d+=\d+</field>
    <description>Bus Reservation System SQL injection attempt in pickup_id parameter</description>
    <group>attack,sql_injection,cve_2023_53877,</group>
    <mitre>
      <id>T1190</id>
    </mitre>
  </rule>
  <rule id="100554" level="12">
    <decoded_as>json</decoded_as>
    <field name="url" type="pcre2">(?i)pickup_id=.*(SLEEP\(|UNION\s+SELECT|EXTRACTVALUE|information_schema)</field>
    <description>Advanced SQL injection payload targeting pickup_id parameter in Bus Reservation System</description>
    <group>attack,sql_injection,cve_2023_53877,</group>
    <mitre>
      <id>T1190</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 2/4 (CLAIMED — single source claims patch, not independently confirmed). The NVD description does not specify a fixed version, and no vendor advisory is publicly indexed. Organizations should not assume a patched version exists from the vendor. Treat all instances as vulnerable.

1) Immediate Mitigations (applied today):

  • Place the application behind a Web Application Firewall (WAF) with a rule blocking requests containing SQL injection signatures in the pickup_id parameter (e.g., ModSecurity CRS rules 942100-942270).
  • Restrict network access to the application using firewall rules, allowing only trusted source IP ranges or VPN access.
  • Disable all error reporting in PHP configuration (display_errors=Off, log_errors=On) to prevent error-based data leakage.
  • If the application supports HTTPS-only, enforce it; SQL injection does not require plaintext, but it reduces other attack vectors.

2) Patch/Upgrade Steps:

  • Verify the application's source code repository or vendor distribution channel for any released updates. Check the version.php or configuration file for version confirmation.
  • If no patched version exists, request a hotfix from the vendor if commercially licensed, or modify the source code manually: replace all raw $_GET['pickup_id'] usage with PDO::prepare() and bindValue() statements, or at minimum apply mysqli_real_escape_string().
  • As a permanent fix, consider migrating to a maintained fork or a modern reservation system with active security support.

3) Long-Term Hardening:

  • Run the database with minimal privileges (SELECT, INSERT, UPDATE, DELETE only) — revoke FILE, FILE_PRIV, and SUPER from the application database user.
  • Enable MySQL query logging to a dedicated security log and ship to a SIEM (Splunk/Elastic) for post-incident forensics.
  • Enforce strong administrative passwords for the application and database and implement a rotation policy.
  • Conduct periodic vulnerability scans and penetration tests against the application; immediately after any configuration change.
  • Monitor FIRST.org EPSS and CISA KEV feeds for updates on CVE-2023-53877; if it is later added to KEV, accelerate patching regardless of vendor status.
  • Segment the web application from critical backend systems — database, payment gateways, and passenger data stores — so a compromise cannot laterally move.

References

  1. NVD Entry for CVE-2023-53877 — https://nvd.nist.gov/vuln/detail/CVE-2023-53877 (Official NVD record, description of the SQL injection flaw and affected product).
  2. Mitre ATT&CK Technique T1190 — https://attack.mitre.org/techniques/T1190/ (Exploit Public-Facing Application — recommended mapping for this vulnerability class).
  3. OWASP SQL Injection Prevention Cheat Sheet — https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html (Definitive guidance for guarding against the vulnerability class, applicable given the absence of a vendor patch).
  4. PortSwigger SQL Injection Cheat Sheet — https://portswigger.net/web-security/sql-injection/cheat-sheet (Technical payload reference confirming boolean/error/time-based techniques described in this report).
  5. FIRST.org EPSS — https://www.first.org/epss/ (Monitor this CVE for EPSS scoring; currently unscored, but updates may reflect active exploitation).

Threat Actor Campaigns / Exploit-in-the-Wild: As of this report date, there is no evidence of active exploitation in the wild (CISA KEV: NO). No specific threat actor group has been associated with this CVE. However, given the prevalence of SQL injection in PHP reservation systems and the availability of automated exploitation frameworks (sqlmap), the likelihood of opportunistic exploitation is elevated once the CVE gains wider publicity. Enterprise SOC teams should deploy the detection rules above proactively.

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-53877/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.