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.
{ "availability": "No subscription required", "binaries": [ { "binary_version": "229-4ubuntu19", "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" } ] }