GO-2023-1623

Source
https://pkg.go.dev/vuln/GO-2023-1623
Import Source
https://vuln.go.dev/ID/GO-2023-1623.json
JSON Data
https://api.osv.dev/v1/vulns/GO-2023-1623
Aliases
Published
2023-03-13T19:39:57Z
Modified
2024-05-20T16:03:47Z
Summary
Out-of-memory panic in github.com/crossplane/crossplane-runtime
Details

An out of memory panic vulnerability exists in the crossplane-runtime libraries.

Applications that use the Paved type's SetValue method with user-provided input that is not properly validated might use excessive amounts of memory and cause an out of memory panic.

In the fieldpath package, the Paved.SetValue method sets a value on the Paved object according to the provided path, without any validation. This allows setting values in slices at any provided index, which grows the target array up to the requested index. The index is currently capped at max uint32 (4294967295), a large value. If callers do not validate paths' indexes on their own, this could allow users to consume arbitrary amounts of memory.

Applications that do not use the Paved type's SetValue method are not affected.

Users unable to upgrade can work around this issue by parsing and validating the path before passing it to the SetValue method of the Paved type, constraining the index size as deemed appropriate.

Database specific
{
    "review_status": "REVIEWED",
    "url": "https://pkg.go.dev/vuln/GO-2023-1623"
}
References
Credits
    • Disclosed by Ada Logics in a fuzzing audit sponsored by CNCF.

Affected packages

Go / github.com/crossplane/crossplane-runtime

Package

Name
github.com/crossplane/crossplane-runtime
View open source insights on deps.dev
Purl
pkg:golang/github.com/crossplane/crossplane-runtime

Affected ranges

Type
SEMVER
Events
Introduced
0.6.0
Fixed
0.16.1
Introduced
0.17.0
Fixed
0.19.2

Ecosystem specific

{
    "imports": [
        {
            "path": "github.com/crossplane/crossplane-runtime/pkg/fieldpath",
            "symbols": [
                "Paved.MergeValue",
                "Paved.SetBool",
                "Paved.SetNumber",
                "Paved.SetString",
                "Paved.SetValue"
            ]
        }
    ]
}