Skip to content
Fencer Intel
high 7.8

GHSA-qw48-84f6-28gv json

Graphite Has a Pickle Deserialization Vulnerability

published 5mo ago modified 5mo ago

cvss
7.8
version 3.1, GitHub
cisa kev
Not listed
not in CISA's catalog
epss
—
no score, EPSS covers CVEs only
public exploits
0
none known

Summary

### Impact **Type of vulnerability:** Insecure Deserialization via Python's `pickle` module.

**Who is impacted:** Users of *Graphite graph database engine* versions **before 0.2** who load database files from untrusted or third-party sources. An attacker could craft a malicious database file that executes arbitrary code when loaded by the engine. This is possible because the engine used `pickle` for serialization, which is known to be unsafe for untrusted data.

### Patches The vulnerability has been patched starting from **version 0.2**. All users should upgrade to **version 0.2 or later** (the current version is 0.4 at publishing time). In version 0.2 and above, the engine uses **JSON** instead of `pickle` for database storage, eliminating the deserialization risk.

### Workarounds If users cannot upgrade immediately:

1. **Do not load database files from untrusted or unknown sources** when using versions <0.2. 2. **Migrate existing pickle-based databases** to the new JSON format using the provided migration module:

```python from graphite.Migration import convert_pickle_to_json convert_pickle_to_json("path/to/old_database.pkl", "path/to/new_database.json") ```

After migration, you can safely use the database with version 0.2+.

**Note:** Versions 0.2 and later will show a **warning** when attempting to load legacy pickle files, reminding you to migrate them. Also, **you can't load pickle files** in 0.2 and later.

### Resources - Upgrade to [v0.2 or newer](https://github.com/mkh-user/graphite/releases) - Migration guide: See `graphite.Migration` module documentation - More on pickle security: [Python docs – pickle security](https://docs.python.org/3/library/pickle.html#module-pickle)

Patch / fix

  • pypi graphitedb 0.2

Is GHSA-qw48-84f6-28gv in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

CVSS scores

assigned by version score vector
GitHub 3.1 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Affected packages

ecosystem package affected fixed in
pypi graphitedb
<0.2
0.2

Classification

Weakness
  • CWE-502 Deserialization of Untrusted Data

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.