Lucene search

K
osvGoogleOSV:GHSA-VFVJ-3M3G-M532
HistoryMar 13, 2023 - 8:53 p.m.

fieldpath's Paved.SetValue allows growing arrays up to arbitrary sizes in crossplane-runtime

2023-03-1320:53:50
Google
osv.dev
22
fuzz testing
cncf
fieldpath package
paved type
setvalue method
memory consumption
out of memory panic
slices
validation
index size
fuzzing audit
sponsored

CVSS3

7.5

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

EPSS

0.001

Percentile

41.3%

Summary

Fuzz testing on crossplane/crossplane, by Ada Logics and sponsored by the CNCF, identified input to a function in the fieldpath package that can cause an out of memory panic. Applications that use the Paved type’s SetValue method with user provided input without proper validation might use excessive amounts of memory and cause an out of memory panic.

Details

In the fieldpath package, the SetValue method of the Paved type sets a value on the inner object according to the provided path, without validating it first. This allows setting values in slices at any specific index and the code will grow the target array up to the required size. The index is currently capped at max uint32 (4294967295) given how indexes are parsed, but that is still an unnecessarily large value.

Workaround

Users can parse and validate the path before passing it to the SetValue method of the Paved type, constraining the index size as deemed appropriate.

Credits

Disclosed by Ada Logics in a fuzzing audit sponsored by CNCF.

CVSS3

7.5

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

EPSS

0.001

Percentile

41.3%

Related for OSV:GHSA-VFVJ-3M3G-M532