Repository navigation
fix(deps): update dependency fsspec to v2026 [security] - #381
Open
dreadnode-renovate-bot[bot] wants to merge 1 commit into
Open
dreadnode-renovate-bot[bot] wants to merge 1 commit into
dreadnode-renovate-bot[bot] wants to merge 1 commit into
Conversation
| datasource | package | from | to | | ---------- | ------- | --------- | -------- | | pypi | fsspec | 2025.10.0 | 2026.6.0 |
Contributor
Author
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
| Package | Change | Age | Confidence |
|
Generated Summary:
fsspec[s3]dependency:>=2023.1.0,<=2025.12.0to>=2026.6.0,<=2026.6.0.fsspec[s3].This summary was generated with ❤️ by rigging
| fsspec (changelog) |
|
|
>=2023.1.0,<=2025.12.0→>=2026.6.0,<=2026.6.0|fsspec: Server-Side Template Injection in ReferenceFileSystem leads to Remote Code Execution
CVE-2026-104851 / GHSA-27vj-qcqg-25rc
More information
Details
Summary
fsspec.implementations.reference.ReferenceFileSystemparses a "references"JSON document (Kerchunk format) supplied either inline or via a URL. The
parser renders fields from this JSON through un-sandboxed
jinja2.Template(...).render(...)calls in three locations. An attacker whocontrols the JSON document — typically by hosting it at a URL that the
victim opens with
fsspec.filesystem("reference", fo=URL)or viaxarray.open_dataset("reference://...")— achieves arbitrary Python codeexecution on the victim machine, before any data is read.
This mirrors the pattern of CVE-2024-34359
in
llama-cpp-python, where externally-sourced template strings wererendered with the default unrestricted Jinja2 environment.
Affected versions
All versions of
fsspecfrom0.9.0onward (vulnerable code introduced incommit
0fb8d56b684ee74ad9ad4587fd560bde1b116450, 2021-03-12). Confirmed onthe latest released version
2025.10.0.Affected sinks
All in
fsspec/implementations/reference.py:_process_references1._render_jinjasimple_templates=Falseand arefsentry contains{{_process_templates(lambda)templatesdict has values containing{{, invoked later via render context_process_gengenarray (always reached, regardless ofsimple_templates)Sink C is the most severe: it is reached unconditionally for any references
JSON that includes a
genfield.The vulnerable code:
Proof of concept (Sink C, minimal)
Save as
poc.py:Run:
End-to-end via xarray (real-world consumer pathway)
Tested on
Impact
fsspec.ReferenceFileSystemis the canonical entrypoint for the Kerchunkformat, widely used in the Pangeo / Earth-observation / climate
data-science ecosystem to provide cloud-optimised views of
HDF5 / NetCDF / GRIB archives hosted on object storage.
Realistic attack vectors:
ingests user-submitted Kerchunk URLs.
been tampered with (supply chain).
In every case, the victim performs no action beyond opening a "reference
filesystem" — there is no documented expectation that a data catalogue
can execute arbitrary Python code.
Suggested fix
Replace
jinja2.Template(...)with a sharedjinja2.sandbox.ImmutableSandboxedEnvironmentfor all three sinks. Thismatches the post-incident hardening applied to
llama-cpp-pythonafterCVE-2024-34359.
Then in each sink, replace
jinja2.Template(s).render(...)with_sandboxed_env().from_string(s).render(...).The legitimate Kerchunk template syntax (simple variable substitution
like
{{ varname }}) continues to work under the sandbox; only the SSTIgadgets (
__class__,__init__.__globals__,__subclasses__, etc.)are refused with
jinja2.exceptions.SecurityError.A complete patch is available on request.
Credit
Reported by Dany.A
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
fsspec/filesystem_spec (fsspec)
v2026.6.0Compare Source
v2026.4.0Compare Source
v2026.3.0Compare Source
v2026.2.0Compare Source
v2026.1.0Compare Source
v2025.12.0Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.