In OpenStack Swift before 2.36.2 and 2.37.2, s3api middleware enters an infinite loop when processing a truncated aws-chunked PUT request body. The StreamingInput class repeatedly appends an empty buffer and re-reads, causing the proxy-server worker handling the request to become permanently unresponsive with increasing CPU and memory consumption. An authenticated attacker can systematically exhaust all proxy-server workers, resulting in denial of service. The defect was introduced in Swift 2.36.0.
{
"binaries": [
{
"binary_name": "python3-swift",
"binary_version": "2.36.0-0ubuntu1.1"
},
{
"binary_name": "swift",
"binary_version": "2.36.0-0ubuntu1.1"
},
{
"binary_name": "swift-account",
"binary_version": "2.36.0-0ubuntu1.1"
},
{
"binary_name": "swift-container",
"binary_version": "2.36.0-0ubuntu1.1"
},
{
"binary_name": "swift-object",
"binary_version": "2.36.0-0ubuntu1.1"
},
{
"binary_name": "swift-object-expirer",
"binary_version": "2.36.0-0ubuntu1.1"
},
{
"binary_name": "swift-proxy",
"binary_version": "2.36.0-0ubuntu1.1"
}
]
}
{
"binaries": [
{
"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",
"binary_version": "2.37.1-0ubuntu2"
}
]
}