Docker Engine classifies a registry hostname as insecure using an any-match DNS check. loadInsecureRegistries() injects 127.0.0.0/8 and ::1/128 as insecure CIDRs by default. isCIDRMatch resolves all of the hostname's addresses and returns true if a single address is in the insecure CIDR list. Because the transport re-dials the hostname rather than the CIDR-matching address, a DNS answer set of one loopback IP plus a non-loopback attacker IP disables certificate verification and enables HTTP fallback for the registry connection.
{
"binaries": [
{
"binary_name": "docker.io",
"binary_version": "18.09.7-0ubuntu1~16.04.9+esm2"
},
{
"binary_name": "golang-docker-dev",
"binary_version": "18.09.7-0ubuntu1~16.04.9+esm2"
},
{
"binary_name": "golang-github-docker-docker-dev",
"binary_version": "18.09.7-0ubuntu1~16.04.9+esm2"
},
{
"binary_name": "vim-syntax-docker",
"binary_version": "18.09.7-0ubuntu1~16.04.9+esm2"
}
]
}{
"binaries": [
{
"binary_name": "docker.io",
"binary_version": "20.10.21-0ubuntu1~18.04.3+esm3"
},
{
"binary_name": "golang-docker-dev",
"binary_version": "20.10.21-0ubuntu1~18.04.3+esm3"
},
{
"binary_name": "golang-github-docker-docker-dev",
"binary_version": "20.10.21-0ubuntu1~18.04.3+esm3"
},
{
"binary_name": "vim-syntax-docker",
"binary_version": "20.10.21-0ubuntu1~18.04.3+esm3"
}
]
}{
"binaries": [
{
"binary_name": "golang-docker-dev",
"binary_version": "20.10.21-0ubuntu1~20.04.6+esm2"
},
{
"binary_name": "golang-github-docker-docker-dev",
"binary_version": "20.10.21-0ubuntu1~20.04.6+esm2"
},
{
"binary_name": "vim-syntax-docker",
"binary_version": "20.10.21-0ubuntu1~20.04.6+esm2"
}
]
}{
"binaries": [
{
"binary_name": "golang-docker-dev",
"binary_version": "20.10.21-0ubuntu1~22.04.8+esm1"
},
{
"binary_name": "golang-github-docker-docker-dev",
"binary_version": "20.10.21-0ubuntu1~22.04.8+esm1"
},
{
"binary_name": "vim-syntax-docker",
"binary_version": "20.10.21-0ubuntu1~22.04.8+esm1"
}
]
}