VYPR
High severityNVD Advisory· Published Jan 23, 2014· Updated Apr 29, 2026

CVE-2014-0006

CVE-2014-0006

Description

The TempURL middleware in OpenStack Object Storage (Swift) 1.4.6 through 1.8.0, 1.9.0 through 1.10.0, and 1.11.0 allows remote attackers to obtain secret URLs by leveraging an object name and a timing side-channel attack.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
swiftPyPI
>= 1.4.6, <= 1.8.0
swiftPyPI
>= 1.9.0, <= 1.10.0
swiftPyPI
>= 1.11.0, < 1.12.01.12.0

Affected products

16
  • OpenStack/Swift16 versions
    cpe:2.3:a:openstack:swift:1.10.0:*:*:*:*:*:*:*+ 15 more
    • cpe:2.3:a:openstack:swift:1.10.0:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.11.0:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.4.6:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.4.7:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.4.8:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.5.0:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.6.0:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.7.0:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.7.2:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.7.4:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.7.5:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.7.6:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.8.0:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.9.0:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.9.1:*:*:*:*:*:*:*
    • cpe:2.3:a:openstack:swift:1.9.2:*:*:*:*:*:*:*

Patches

1
754633988931

Use constant time comparison in tempURL

https://github.com/openstack/swiftSamuel MerrittJan 16, 2014via ghsa
1 file changed · +8 2
  • swift/common/middleware/tempurl.py+8 2 modified
    @@ -106,7 +106,7 @@
     from swift.proxy.controllers.base import get_account_info
     from swift.common.swob import HeaderKeyDict, HTTPUnauthorized
     from swift.common.utils import split_path, get_valid_utf8_str, \
    -    register_swift_info, get_hmac
    +    register_swift_info, get_hmac, streq_const_time
     
     
     #: Default headers to remove from incoming requests. Simply a whitespace
    @@ -284,7 +284,13 @@ def __call__(self, env, start_response):
                                     request_method='PUT'))
             else:
                 hmac_vals = self._get_hmacs(env, temp_url_expires, keys)
    -        if temp_url_sig not in hmac_vals:
    +
    +        # While it's true that any() will short-circuit, this doesn't affect
    +        # the timing-attack resistance since the only way this will
    +        # short-circuit is when a valid signature is passed in.
    +        is_valid_hmac = any(streq_const_time(temp_url_sig, hmac)
    +                            for hmac in hmac_vals)
    +        if not is_valid_hmac:
                 return self._invalid(env, start_response)
             self._clean_incoming_headers(env)
             env['swift.authorize'] = lambda req: None
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

7

News mentions

0

No linked articles in our index yet.