The simplified implementation of blocking reads and writes introduced in Tomcat 10 and back-ported to Tomcat 9.0.47 onwards exposed a long standing (but extremely hard to trigger) concurrency bug in Apache Tomcat 10.1.0 to 10.1.0-M12, 10.0.0-M1 to 10.0.18, 9.0.0-M1 to 9.0.60 and 8.5.0 to 8.5.77 that could cause client connections to share an Http11Processor instance resulting in responses, or part responses, to be received by the wrong client.
{
"versions": [
{
"introduced": "8.5.0"
},
{
"last_affected": "8.5.77"
},
{
"introduced": "9.0.0"
},
{
"last_affected": "9.0.60"
},
{
"introduced": "10.0.0"
},
{
"last_affected": "10.0.18"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone1"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone10"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone11"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone12"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone2"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone3"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone4"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone5"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone6"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone7"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone8"
},
{
"introduced": "0"
},
{
"last_affected": "10.1.0-milestone9"
},
{
"introduced": "0"
},
{
"last_affected": "10.0"
},
{
"introduced": "0"
},
{
"last_affected": "11.0"
}
]
}