Skip to content
Fencer Intel
low 3.0

GHSA-3hpf-ff72-j67p json

shared_preferences_android vulnerability

published last yr. modified last yr.

cvss
3.0
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 Due to some data types not being natively representable for the available storage options, shared_preferences_android serializes and deserializes special string prefixes to store these unrepresentable data types. This allows arbitrary classes to be deserialized leading to arbitrary code execution.

As a result, Files containing the preferences can be overwritten with a malicious one with a deserialization payload that triggers as soon as the data is loaded from the disk.

### Patches 2.3.4

### Workarounds Update to the latest version of shared_preferences_android that contains the changes to address this vulnerability.

### References TBD

### For more information See [our community page](https://dart.dev/community) to find ways to contact the team.

### Thanks Thank you so much to Oskar Zeino-Mahmalat from sonarsource for finding and reporting this issue!

Patch / fix

  • pub shared_preferences_android 2.3.4

Is GHSA-3hpf-ff72-j67p 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 3.0 CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:L

Affected packages

ecosystem package affected fixed in
pub shared_preferences_android
>=2.3.3, <2.3.4
2.3.4

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.