In systemd through 233, certain sizes passed to dnspacketnew in systemd-resolved can cause it to allocate a buffer that's too small. A malicious DNS server can exploit this via a response with a specially crafted TCP payload to trick systemd-resolved into allocating a buffer that's too small, and subsequently write arbitrary data beyond the end of it.
{
"binaries": [
{
"binary_name": "libnss-myhostname",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "libnss-mymachines",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "libnss-resolve",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "libpam-systemd",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "libsystemd-dev",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "libsystemd0",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "libudev-dev",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "libudev1",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "systemd",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "systemd-container",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "systemd-coredump",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "systemd-journal-remote",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "systemd-sysv",
"binary_version": "229-4ubuntu19"
},
{
"binary_name": "udev",
"binary_version": "229-4ubuntu19"
}
],
"availability": "No subscription required"
}