GHSA-5fp6-4xw3-xqq3 @keystone-6/core's bundled cuid package known to be insecure

Not scored Published

KeystoneJS uses insecure cuid identifiers by default, allowing potential prediction of IDs; developers should upgrade or configure custom identifiers.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
None listed

What is GHSA-5fp6-4xw3-xqq3?

GHSA-5fp6-4xw3-xqq3 is a vulnerability in @keystone-6/core, published on 12 Jun 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

Summary

The cuid package used by @keystone-6/* and upstream dependencies is deprecated and marked as insecure by the author.

As reported by the author > Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead.

What are doing about this?

What can I do about this?

We have added a work-around for users who want to provide custom identifiers in https://github.com/keystonejs/keystone/pull/8645

What if I need a cuid?

The features marked as a security vulnerability by @paralleldrive are sometimes actually needed (as written in the README of cuid) - the problem is the inherent risks that features like this can have.

You might actually want the features of a monotonically increasing (auto-increment, k-sortable), and timestamp-based id as part of your application, and keystone should support that - but you might not want them by default. This is why this security advisory has been accepted by me (@dcousens), we currently use cuid identifiers by default, and that should change.

Impact

I have accepted this security advisory on the basis that we don't need this kind of identifier typically, and the need for them should be driven by an application's requirements, not a convenient default.

Which versions are affected by GHSA-5fp6-4xw3-xqq3?

2 open source packages ship an affected version, including @keystone-6/core.

PackageAffectedFixed in
@keystone-6/core npmAll versions to 5.3.1None
@keystone-6/core npmAll versions to 5.3.1None

How do I fix GHSA-5fp6-4xw3-xqq3?

No fix has been published for GHSA-5fp6-4xw3-xqq3 yet. Limit exposure of the affected software until one is available.

Is GHSA-5fp6-4xw3-xqq3 being exploited?

There is no known exploitation of GHSA-5fp6-4xw3-xqq3 in the wild and no public exploit code.

Sources

Is GHSA-5fp6-4xw3-xqq3 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free