In OpenStack Swift through 2.38.0, the proxy server Accept header parser contains a regular expression vulnerable to catastrophic backtracking (ReDoS). The "qdtext" pattern (?:[^"]|\.)* allows an unauthenticated remote attacker to send a crafted Accept header that causes exponential CPU consumption in the proxy worker. A payload of 32 backslash-character pairs exceeds 30 seconds of CPU time. No authentication is required. Repeated requests can exhaust all proxy worker threads, resulting in a complete denial of service.
{
"binaries": [
{
"binary_version": "2.7.1-0ubuntu2",
"binary_name": "python-swift"
},
{
"binary_version": "2.7.1-0ubuntu2",
"binary_name": "swift"
},
{
"binary_version": "2.7.1-0ubuntu2",
"binary_name": "swift-account"
},
{
"binary_version": "2.7.1-0ubuntu2",
"binary_name": "swift-container"
},
{
"binary_version": "2.7.1-0ubuntu2",
"binary_name": "swift-object"
},
{
"binary_version": "2.7.1-0ubuntu2",
"binary_name": "swift-object-expirer"
},
{
"binary_version": "2.7.1-0ubuntu2",
"binary_name": "swift-proxy"
}
]
}{
"binaries": [
{
"binary_version": "2.17.1-0ubuntu1",
"binary_name": "python-swift"
},
{
"binary_version": "2.17.1-0ubuntu1",
"binary_name": "swift"
},
{
"binary_version": "2.17.1-0ubuntu1",
"binary_name": "swift-account"
},
{
"binary_version": "2.17.1-0ubuntu1",
"binary_name": "swift-container"
},
{
"binary_version": "2.17.1-0ubuntu1",
"binary_name": "swift-object"
},
{
"binary_version": "2.17.1-0ubuntu1",
"binary_name": "swift-object-expirer"
},
{
"binary_version": "2.17.1-0ubuntu1",
"binary_name": "swift-proxy"
}
]
}{
"binaries": [
{
"binary_version": "2.25.2-0ubuntu1.1",
"binary_name": "python3-swift"
},
{
"binary_version": "2.25.2-0ubuntu1.1",
"binary_name": "swift"
},
{
"binary_version": "2.25.2-0ubuntu1.1",
"binary_name": "swift-account"
},
{
"binary_version": "2.25.2-0ubuntu1.1",
"binary_name": "swift-container"
},
{
"binary_version": "2.25.2-0ubuntu1.1",
"binary_name": "swift-object"
},
{
"binary_version": "2.25.2-0ubuntu1.1",
"binary_name": "swift-object-expirer"
},
{
"binary_version": "2.25.2-0ubuntu1.1",
"binary_name": "swift-proxy"
}
]
}{
"binaries": [
{
"binary_version": "2.29.2-0ubuntu1.1",
"binary_name": "python3-swift"
},
{
"binary_version": "2.29.2-0ubuntu1.1",
"binary_name": "swift"
},
{
"binary_version": "2.29.2-0ubuntu1.1",
"binary_name": "swift-account"
},
{
"binary_version": "2.29.2-0ubuntu1.1",
"binary_name": "swift-container"
},
{
"binary_version": "2.29.2-0ubuntu1.1",
"binary_name": "swift-object"
},
{
"binary_version": "2.29.2-0ubuntu1.1",
"binary_name": "swift-object-expirer"
},
{
"binary_version": "2.29.2-0ubuntu1.1",
"binary_name": "swift-proxy"
}
]
}{
"binaries": [
{
"binary_version": "2.33.0-0ubuntu1.1",
"binary_name": "python3-swift"
},
{
"binary_version": "2.33.0-0ubuntu1.1",
"binary_name": "swift"
},
{
"binary_version": "2.33.0-0ubuntu1.1",
"binary_name": "swift-account"
},
{
"binary_version": "2.33.0-0ubuntu1.1",
"binary_name": "swift-container"
},
{
"binary_version": "2.33.0-0ubuntu1.1",
"binary_name": "swift-object"
},
{
"binary_version": "2.33.0-0ubuntu1.1",
"binary_name": "swift-object-expirer"
},
{
"binary_version": "2.33.0-0ubuntu1.1",
"binary_name": "swift-proxy"
}
]
}{
"binaries": [
{
"binary_version": "2.37.1-0ubuntu2",
"binary_name": "python3-swift"
},
{
"binary_version": "2.37.1-0ubuntu2",
"binary_name": "swift"
},
{
"binary_version": "2.37.1-0ubuntu2",
"binary_name": "swift-account"
},
{
"binary_version": "2.37.1-0ubuntu2",
"binary_name": "swift-container"
},
{
"binary_version": "2.37.1-0ubuntu2",
"binary_name": "swift-object"
},
{
"binary_version": "2.37.1-0ubuntu2",
"binary_name": "swift-object-expirer"
},
{
"binary_version": "2.37.1-0ubuntu2",
"binary_name": "swift-proxy"
}
]
}