VDB
Sign up
MEDIUM5.9

GHSA-5jjv-x4fq-qjwp

Possible timing attack in derivation_endpoint

Quick fix

GHSA-5jjv-x4fq-qjwp — shrine: upgrade to the fixed version with the command below.

bundle update shrine

Details

### Impact

When using the `derivation_endpoint` plugin, it's possible for the attacker to use a timing attack to guess the signature of the derivation URL.

### Patches

The problem has been fixed by comparing sent and calculated signature in constant time, using `Rack::Utils.secure_compare`. Users using the `derivation_endpoint` plugin are urged to upgrade to Shrine 3.3.0 or greater.

### Workarounds

Users of older Shrine versions can apply the following monkey-patch after loading the `derivation_endpoint` plugin:

```rb class Shrine class UrlSigner def verify_signature(string, signature) if signature.nil? fail InvalidSignature, "missing \"signature\" param" elsif !Rack::Utils.secure_compare(signature, generate_signature(string)) fail InvalidSignature, "provided signature does not match the calculated signature" end end end end ```

### References

You can read more about timing attacks [here](https://en.wikipedia.org/wiki/Timing_attack).

Are you affected?

Enter the version of the package you're using.

Affected packages

RubyGems/shrine
Introduced in: 0Fixed in: 3.3.0
Fixbundle update shrine

References