CVE-2026-10804
Description
A flaw was found in Streamlit, within its Palette Handler component. This vulnerability stems from the use of a weak hashing algorithm. A local attacker could exploit this flaw, though it requires a high level of technical complexity. Successful exploitation may lead to a low impact on the integrity and availability of the affected system.
Statement
Red Hat rates this vulnerability as Low impact with a CVSS score of 3.6, lower than NIST's 4.7. Red Hat products that ship Streamlit are limited to RHEL AI bootc containers and RHOAI's NeMo Guardrails server, where the caching functions are used for internal model serving rather than processing user-uploaded datasets, making the attack scenario unlikely.
Red Hat scores integrity as Low rather than High because the hash collision requires preserving values at sampled positions, which constrains what the attacker can change. The attacker controls the non-sampled rows but cannot freely modify all cached data. Availability is Low because poisoned cache entries cause incorrect results for the cache lifetime without affecting the application itself.
Mitigation
If your application uses @st.cache_data or @st.cache_resource with large datasets from untrusted sources, validate the data before it reaches the caching layer. For DataFrames exceeding the 50,000-row sampling threshold, comparing a hash of the full dataset against the cached version before returning results can catch collisions that the built-in sampler misses. Reducing the cache TTL also limits the window during which a poisoned entry would be served to other users.
Common Vulnerability Scoring System (CVSS) Score Details
Info alert:Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).
The following CVSS metrics and score provided are preliminary and subject to review.
CVSS v3 Score Breakdown
| Red Hat | NVD | cve.org | |
|---|---|---|---|
| Base Score | 3.6 | 4.7 | 3.6 |
| Attack Vector | Local | Local | Local |
| Attack Complexity | High | High | High |
| Privileges Required | Low | Low | Low |
| User Interaction | None | None | None |
| Scope | Unchanged | Unchanged | Unchanged |
| Confidentiality | None | None | None |
| Integrity Impact | Low | High | Low |
| Availability Impact | Low | None | Low |
Vector
Red Hat: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L
NVD: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
cve.org: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L/E:P/RC:C
Red Hat CVSS v3 Score Explanation
--- I:L vs NIST I:H --- The attacker can only modify data at positions the fixed-seed sampler does not select. For a 50K-row DataFrame, about 10K rows are sampled and must match the legitimate data for the hash to collide. The attacker controls the remaining rows but cannot choose which ones are sampled. This is partial and random control, not total, which fits I:L. NIST scored I:H, likely treating cache poisoning across all sessions as total integrity loss, but the constraint on sampled positions limits what the attacker can actually change.
--- A:L vs NIST A:N --- When the cache is poisoned, the application returns wrong data to users for the duration of the cache TTL. The app stays up but the data it serves is unreliable, which is a low availability impact rather than none.
Understanding the Weakness (CWE)
Access Control
Technical Impact: Bypass Protection Mechanism
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.