runc through 1.0-rc6, as used in Docker before 18.09.2 and other products, allows attackers to overwrite the host runc binary (and consequently obtain host root access) by leveraging the ability to execute a command as root within one of these types of containers: (1) a new container with an attacker-controlled image, or (2) an existing container, to which the attacker previously had write access, that can be attached with docker exec. This occurs because of file-descriptor mishandling, related to /proc/self/exe.
{
"versions": [
{
"introduced": "1.4.0"
},
{
"fixed": "1.4.3"
},
{
"introduced": "1.5.0"
},
{
"fixed": "1.5.3"
},
{
"introduced": "1.6.0"
},
{
"fixed": "1.6.2"
},
{
"introduced": "1.7.0"
},
{
"fixed": "1.7.2"
}
]
}{
"versions": [
{
"introduced": "0"
},
{
"fixed": "18.09.2"
},
{
"introduced": "0"
},
{
"last_affected": "18.04"
}
]
}{
"versions": [
{
"introduced": "0"
},
{
"fixed": "3.2.0"
}
]
}{
"versions": [
{
"introduced": "0"
},
{
"last_affected": "0.1.1"
},
{
"introduced": "0"
},
{
"last_affected": "1.0.0-rc1"
},
{
"introduced": "0"
},
{
"last_affected": "1.0.0-rc2"
},
{
"introduced": "0"
},
{
"last_affected": "1.0.0-rc3"
},
{
"introduced": "0"
},
{
"last_affected": "1.0.0-rc4"
},
{
"introduced": "0"
},
{
"last_affected": "1.0.0-rc5"
},
{
"introduced": "0"
},
{
"last_affected": "1.0.0-rc6"
}
]
}{
"versions": [
{
"introduced": "0"
},
{
"last_affected": "3.7"
},
{
"introduced": "0"
},
{
"last_affected": "3.6"
},
{
"introduced": "0"
},
{
"last_affected": "3.7"
}
]
}[
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "3.4"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "3.5"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "8.0"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "7.0"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "15.0-NA"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "15.0-sp1"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "15.0"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "15.1"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "42.3"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.2.0-1.13.3"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1.10.10"
}
]
},
{
"events": [
{
"introduced": "1.10.11"
},
{
"fixed": "1.11.9"
}
]
},
{
"events": [
{
"introduced": "1.11.10"
},
{
"fixed": "1.12.1"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "29"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "30"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "16.04"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "18.10"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "19.04"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "2018.02"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "2018.05"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "2018.08"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "2018.11"
}
]
}
]
[
{
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "libcontainer/nsenter/nsexec.c"
},
"id": "CVE-2019-5736-1cffac28",
"deprecated": false,
"source": "https://github.com/opencontainers/runc/commit/0a8e4117e7f715d5fbeef398405813ce8e88558b",
"digest": {
"line_hashes": [
"206209469052802163709281360376397312675",
"48219882597669953983429687793407620753",
"213043235157353488768314210772726520178",
"251821556443359960608428361047721063429",
"93222659505421272286403399172694346479",
"107309039482126281655838517999257961732"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"signature_version": "v1",
"target": {
"file": "libcontainer/nsenter/nsexec.c",
"function": "nsexec"
},
"id": "CVE-2019-5736-c45baaa5",
"deprecated": false,
"source": "https://github.com/opencontainers/runc/commit/0a8e4117e7f715d5fbeef398405813ce8e88558b",
"digest": {
"function_hash": "43249958159973239119332662430070161949",
"length": 6892.0
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2019-5736.json"