Security advisory
The Flask-Caching extension through 1.10.1 for Flask relies on Pickle for serialization, which may lead to remote code execution or local privilege escalation. If an attacker gains access to cache storage (e.g., filesystem, Memcached, Redis, etc.), they can construct a crafted payload, poison the cache, and execute Python code. NOTE: a third party indicates that exploitation is extremely unlikely unless the machine is already compromised; in other cases, the attacker would be unable to write their payload to the cache and generate the required collision
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2021-33026
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 31 Oct 2026, 11:18 UTC · Revision 1
Source evidence
The Flask-Caching extension through 1.10.1 for Flask relies on Pickle for serialization, which may lead to remote code execution or local privilege escalation. If an attacker gains access to cache storage (e.g., filesystem, Memcached, Redis, etc.), they can construct a crafted payload, poison the cache, and execute Python code. NOTE: a third party indicates that exploitation is extremely unlikely unless the machine is already compromised; in other cases, the attacker would be unable to write their payload to the cache and generate the required collision
osv:CVE-2021-33026
Complete source record
{
"id": "ca661220fef53a03f3d56a2f8fd1fae69900119acd912b4fb794e23355793210",
"url": "https://osv.dev/vulnerability/CVE-2021-33026",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2021-33026",
"summary": "The Flask-Caching extension through 1.10.1 for Flask relies on Pickle for serialization, which may lead to remote code execution or local privilege escalation. If an attacker gains access to cache storage (e.g., filesystem, Memcached, Redis, etc.), they can construct a crafted payload, poison the cache, and execute Python code. NOTE: a third party indicates that exploitation is extremely unlikely unless the machine is already compromised; in other cases, the attacker would be unable to write their payload to the cache and generate the required collision",
"evidence": "osv:CVE-2021-33026",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2021-33026",
"aliases": [
"CVE-2021-33026",
"GHSA-656c-6cxf-hvcv"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/pallets-eco/flask-caching",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"last_affected": "31f6949c499dc8b57ce1db04c1841105d4631eb1"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:flask-caching_project:flask-caching:*:*:*:*:*:flask:*:*",
"range": [
{
"introduced": "0"
},
{
"last_affected": "1.10.1"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v1.10.1",
"v1.10.0",
"v1.9.0",
"v1.8.0",
"v1.7.2",
"v1.7.1",
"v1.7.0",
"v1.6.0",
"v1.5.0",
"v1.4.0",
"v1.3.3",
"v1.3.2",
"v1.3.1",
"v1.3.0",
"1.0.0",
"R-0.11",
"R-0.8",
"R-1.7.1",
"R-0.7",
"R-0.6",
"R-0.4",
"R-0.3.3",
"R-0.3.2",
"R-0.3.1",
"R-0.3"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-33026.json"
}
}
],
"modified": "2026-10-20T10:53:47.365806041Z",
"provider": "osv",
"references": [
"https://github.com/pallets-eco/flask-caching/pull/209#issuecomment-1136397937",
"https://github.com/sh4nks/flask-caching/pull/209"
],
"provider_metadata": {}
},
"related_cves": [
{
"value": "CVE-2021-33026",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 384633,
"published_at": "2021-05-13T23:15:07.367+00:00"
}