GitHub Advisoryadvisory · PyPI

GHSA-q6mv-284r-mp36 check-jsonschema default caching for remote schemas allows for cache confusion

MEDIUM Published 2024-12-02 Modified 2024-12-02 Official page ↗
Aliases
CVE-2024-53848
Ecosystem
PyPI
Packages
check-jsonschema
Severity
Moderate
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N
Weaknesses
CWE-349
Reviewed
2024-12-02

Affected packages

• PyPI check-jsonschema: < 0.30.0 → fixed in 0.30.0

Description

Impact The default cache strategy uses the basename of a remote schema as the name of the file in the cache, e.g. `https://example.org/schema.json` will be stored as `schema.json`. This naming allows for conflicts. If an attacker can get a user to run `check-jsonschema` against a malicious schema URL, e.g., `https://example.evil.org/schema.json`, they can insert their own schema into the cache and it will be picked up and used instead of the appropriate schema. Such a cache confusion attack could be used to allow data to pass validation which should have been rejected. Patches A patch is in progress but has not yet been released. Workarounds • Users can use `--no-cache` to disable caching. • Users can use `--cache-filename` to select filenames for use in the cache, or to ensure that other usages do not overwrite the cached schema. (Note: this flag is being deprecated as part of the remediation effort.) • Users can explicitly download the schema before use as a local file, as in `curl -LOs https://example.org/schema.json; check-jsonschema --schemafile ./schema.json`

Related

Alias · CVE (1)

  • CVE-2024-53848 check-jsonschema is a CLI and set of pre-commit hooks for jsonschema validation. vulnerability

Weakness · CWE (1)

  • CWE-349 Acceptance of Extraneous Untrusted Data With Trusted Data weakness

References