NetworkConfiguration/dhcpcd

NetworkConfiguration/dhcpcd

Releases194
Frequency1 month 2 days
Last Release
Stars447
DHCP / IPv4LL / IPv6RA / DHCPv6 client.

CVE History

CVEAffectedPublishedCVSS v3CVSS v2
6.5 MEDIUM

A flaw was found in dhcpcd's IPv6 Neighbor Discovery Router Advertisement processing. A specially crafted IPv6 Router Advertisement containing a zero-length Neighbor Discovery option can bypass validation during packet storage and later be reparsed without adequate validation, causing the parser to enter a non-advancing loop. Successful exploitation may result in excessive CPU consumption, leading to a denial of service.

<= 10.3.24.7 MEDIUM

dhcpcd through 10.3.2, fixed in commit 78ea09e, contains a heap use-after-free vulnerability in the control socket handling within src/control.c that allows local unprivileged attackers to trigger memory corruption when privilege separation is disabled. Attackers can connect to the control socket and send a privileged command such as -x, causing control_recvdata() to free the client object while the same READ+HANGUP event subsequently reaches control_hangup() with the stale pointer, resulting in a use-after-free condition exploitable in deployments using --disable-privsep or where privsep initialization has failed with the control socket operating in mode 0666.

<= 10.3.26.5 MEDIUM

dhcpcd through 10.3.2, fixed in commit 708b4a5, contains a memory leak vulnerability in the IPv6 Router Advertisement route information handling that allows an unauthenticated same-link attacker to cause denial of service by sending crafted Router Advertisements. Attackers can repeatedly send Router Advertisements containing Route Information options with a lifetime of zero, triggering unfreed allocations in routeinfo_findalloc() that cause linear memory exhaustion and eventual daemon crash.

<= 10.3.28.8 HIGH

Bootimus through 0.1.70 contains a broken access control vulnerability that allows authenticated low-privileged users to perform administrative actions by exploiting missing role enforcement in the JWTMiddleware function in internal/auth/auth.go, which validates JWT tokens and account status but fails to inspect the is_admin flag. Attackers can send requests to any endpoint under the /api/users path to create new administrator accounts or reset administrator passwords, thereby gaining full control of the server and the ability to modify boot menus and installation scripts served to PXE clients.

<= 10.3.25.3 MEDIUM

dhcpcd through 10.3.2, fixed in commit 2f00c7b, contains a one-byte stack out-of-bounds write vulnerability in dhcp6_makemessage() in src/dhcp6.c that allows unauthenticated same-link attackers to write beyond a fixed local buffer by serializing an oversized RFC6603 OPTION_PD_EXCLUDE option body. Attackers can send a crafted DHCPv6 ADVERTISE message containing an IA_PD IAPREFIX /0 with a valid OPTION_PD_EXCLUDE using an exclude prefix length of /121 through /128 to trigger the out-of-bounds write and potentially corrupt adjacent stack memory.

<= 10.3.25.3 MEDIUM

dhcpcd through 10.3.2, fixed in commit 5733d3c, contains a heap use-after-free vulnerability that allows unauthenticated same-link attackers to crash the daemon by sending a crafted DHCPv6 RENEW reply with RFC6603 OPTION_PD_EXCLUDE and both preferred and valid lifetimes set to zero. Attackers acting as or impersonating a DHCPv6 server can trigger dhcp6_deprecatedele() to free a delegated child address while an outer TAILQ_FOREACH_SAFE iterator in dhcp6_deprecateaddrs() still holds the freed pointer, causing a use-after-free when TAILQ_REMOVE is reached.

>= 7.0.0, < 7.2.2, < 6.11.79.8 CRITICAL7.5 HIGH

dhcp6.c in dhcpcd before 6.11.7 and 7.x before 7.2.2 has a buffer over-read in the D6_OPTION_PD_EXCLUDE feature.

< 7.2.17.5 HIGH

dhcpcd before 7.2.1 contains a buffer overflow in dhcp6_findna in dhcp6.c when reading NA/TA addresses.

< 7.2.15.9 MEDIUM4.3 MEDIUM

auth.c in dhcpcd before 7.2.1 allowed attackers to infer secrets by performing latency attacks.

< 7.2.15.3 MEDIUM5 MEDIUM

dhcp.c in dhcpcd before 7.2.1 contains a 1-byte read overflow with DHO_OPTSOVERLOADED.

<= 6.9.45 MEDIUM

dhcpcd before 6.10.0 allows remote attackers to cause a denial of service (invalid read and crash) via vectors related to the option length.

<= 6.9.410 HIGH

dhcpcd before 6.10.0, as used in Android 4.x before 4.4.4, 5.0.x before 5.0.2, 5.1.x before 5.1.1, and 6.x before 2016-04-01 and other products, mismanages option lengths, which allows remote attackers to execute arbitrary code or cause a denial of service (heap-based buffer overflow) via a malformed DHCP response, aka internal bug 26461634.

= 3.1.9, = 3.2.0, = 3.2.1, = 3.2.2, = 3.2.35 MEDIUM

The decode_search function in dhcp.c in dhcpcd 3.x does not properly free allocated memory, which allows remote DHCP servers to cause a denial of service via a crafted response.

= 3.1.9, = 3.2.0, = 3.2.1, = 3.2.2, = 3.2.35 MEDIUM

The decode_search function in dhcp.c in dhcpcd 3.x allows remote DHCP servers to cause a denial of service (out-of-bounds read) via a crafted response.

= 3.1.9, = 3.2.0, = 3.2.1, = 3.2.2, = 3.2.35 MEDIUM

The decode_search function in dhcp.c in dhcpcd 3.x allows remote DHCP servers to cause a denial of service (out-of-bounds write) via a crafted response.

<= 6.9.06.8 MEDIUM

The print_option function in dhcp-common.c in dhcpcd through 6.9.1, as used in dhcp.c in dhcpcd 5.x in Android before 5.1 and other products, misinterprets the return value of the snprintf function, which allows remote DHCP servers to execute arbitrary code or cause a denial of service (memory corruption) via a crafted message.

<= 6.1.06.8 MEDIUM

The get_option function in dhcp.c in dhcpcd before 6.2.0, as used in dhcpcd 5.x in Android before 5.1 and other products, does not validate the relationship between length fields and the amount of data, which allows remote DHCP servers to execute arbitrary code or cause a denial of service (memory corruption) via a large length value of an option in a DHCPACK message.

= 5.2.9, = 6.3.2, = 4.0.0, = 6.0.0, = 5.2.5, = 5.99.3, = 5.1.5, = 6.4.0, = 5.0.7, = 5.2.6, = 5.6.5, = 4.0.12, = 4.0.15, = 6.3.1, = 5.5.1, = 5.5.3, = 5.99.4, = 5.99.5, = 5.99.6, = 6.2.0, = 6.1.0, = 5.6.0, = 6.0.3, = 6.0.4, = 5.0.4, = 5.0.6, = 5.0.8, = 5.2.4, = 5.2.7, = 5.6.4, = 4.0.14, = 6.4.1, = 5.1.4, = 5.5.4, = 5.5.5, = 4.0.7, = 5.0.1, = 5.2.11, = 5.5.0, = 5.5.6, = 4.0.11, = 4.0.2, = 4.0.4, = 4.0.6, = 6.0.1, = 5.0.3, = 5.1.1, = 5.2.12, = 4.0.5, = 6.0.2, = 6.0.5, = 5.0.9, = 5.6.3, = 5.6.6, = 4.0.13, = 5.2.0, = 5.2.1, = 5.5.2, = 5.99.7, = 6.3.0, = 6.4.2, = 5.1.0, = 5.1.2, = 5.2.3, = 5.2.8, = 5.6.1, = 5.6.8, = 4.0.1, = 6.2.1, = 5.0.0, = 5.1.3, = 5.2.10, = 5.6.2, = 5.6.7, = 5.99.2, = 4.0.10, = 4.0.33.3 LOW

The get_option function in dhcpcd 4.0.0 through 6.x before 6.4.3 allows remote DHCP servers to cause a denial of service by resetting the DHO_OPTIONSOVERLOADED option in the (1) bootfile or (2) servername section, which triggers the option to be processed again.