Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
freebsd-dhclient-poc — Reproducer PoC for FreeBSD dhclient heap-based buffer overflow vulnerability when parsing DHCP option 119 (CVE-2020-7461) | Kitploit
Tools/GitHubGitHub/0xkol/freebsd-dhclient-poc
Vulnerability AnalysisExploitationFuzzingNetwork SecurityBinary Exploitation
GitHub0xkol/freebsd-dhclient-poc

freebsd-dhclient-poc

Reproducer PoC for FreeBSD dhclient heap-based buffer overflow vulnerability when parsing DHCP option 119 (CVE-2020-7461)

View Repository
13 years agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2020-7461 Reproducer PoC

Authors: Moshe Kol, Shlomi Oberman

Reproducer PoC for FreeBSD dhclient heap-based buffer overflow vulnerability when parsing DHCP option 119 (CVE-2020-7461).

The problem resides in the function find_search_domain_name_len in the file sbin/dhclient/options.c. This function is called by expand_domain_search when DHCP option 119 (domain search, RFC 3397) is supplied from the server. When a compression scheme is used, the function find_search_domain_name_len is called recursively starting from the pointed location, but fails to check the return value of the recursive call. If the recursive call fails, a return value of -1 is used, which is simply added to the cummulative length variable. Here's the buggy code (lines 299-301, options.c, last commit 70066b9):

root@kitploit:~
299:			pointed_len = find_search_domain_name_len(option,
300:			    &pointer);
301:			domain_name_len += pointed_len;

Later in the function expand_domain_search, a buffer is allocated with the length computed using find_search_domain_name_len, and then the expanded name is written to this buffer using the function . Since the latter function does not have any checks on the pointer value in the compression scheme, it is possible to overrun the allocated buffer.

expand_search_domain_name

You can find FreeBSD Security Advisory here.

Download Tool