Headline
CVE-2023-28109: fix CORS origins to avoid domain hijacking · play-with-docker/play-with-docker@ed82247
Play With Docker is a browser-based Docker playground. Versions 0.0.2 and prior are vulnerable to domain hijacking. Because CORS configuration was not correct, an attacker could use play-with-docker.com
as an example and set the origin header in an http request as evil-play-with-docker.com
. The domain would echo in response header, which successfully bypassed the CORS policy and retrieved basic user information. This issue has been fixed in commit ed82247c9ab7990ad76ec2bf1498c2b2830b6f1a. There are no known workarounds.
@@ -70,10 +70,10 @@ func Register(extend HandlerExtender) {
corsHandler := gh.CORS(gh.AllowCredentials(), gh.AllowedHeaders([]string{"x-requested-with", "content-type"}), gh.AllowedMethods([]string{"GET", "POST", "HEAD", "DELETE"}), gh.AllowedOriginValidator(func(origin string) bool {
if strings.Contains(origin, “localhost”) ||
strings.HasSuffix(origin, “play-with-docker.com”) ||
strings.HasSuffix(origin, “play-with-kubernetes.com”) ||
strings.HasSuffix(origin, “docker.com”) ||
strings.HasSuffix(origin, “play-with-go.dev”) {
strings.HasSuffix(origin, “.play-with-docker.com”) ||
strings.HasSuffix(origin, “.play-with-kubernetes.com”) ||
strings.HasSuffix(origin, “.docker.com”) ||
strings.HasSuffix(origin, “.play-with-go.dev”) {
return true
}
return false
Related news
Impact Give that CORS configuration was not correct, an attacker could use [play-with-docker.com](http://play-with-docker.com/) as an example, set origin header in http request as [evil-play-with-docker.com](http://evil-play-with-docker.com/), it will be echo in response header, which successfully bypass the CORS policy and retrieves basic user information. Patches It has been fixed in lastest version, Please upgrade to latest version Workarounds No, users have to upgrade version.