CVE-2018-17156 in FreeBSDinfo

Summary

by MITRE

In FreeBSD before 11.2-STABLE(r340268) and 11.2-RELEASE-p5, due to incorrectly accounting for padding on 64-bit platforms, a buffer underwrite could occur when constructing an ICMP reply packet when using a non-standard value for the net.inet.icmp.quotelen sysctl.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 04/16/2020

This vulnerability exists in FreeBSD operating systems prior to specific stable and release versions, specifically affecting systems running before 11.2-STABLE(r340268) and 11.2-RELEASE-p5. The issue stems from incorrect handling of padding calculations during ICMP packet construction on 64-bit architectures. When the net.inet.icmp.quotelen sysctl parameter is set to a non-standard value, the system fails to properly account for padding requirements in memory allocation, leading to a buffer underwrite condition. This type of vulnerability represents a classic memory safety issue where insufficient bounds checking allows data to be written beyond the allocated buffer boundaries.

The technical flaw manifests in the ICMP reply packet construction logic where the kernel incorrectly calculates memory requirements for packet buffers. On 64-bit platforms, the padding requirements differ from 32-bit systems due to alignment constraints and word boundaries, but the code fails to account for these differences when using non-standard quote length values. This miscalculation results in insufficient buffer allocation, causing subsequent memory writes to overwrite adjacent memory regions. The vulnerability is particularly dangerous because it occurs within the kernel network stack where malicious actors could exploit this to cause system instability or potentially achieve privilege escalation.

The operational impact of this vulnerability extends beyond simple system crashes, as it represents a potential pathway for remote code execution or denial of service attacks. An attacker could craft specially crafted ICMP packets with specific parameters that trigger the buffer underwrite condition, potentially allowing them to corrupt kernel memory structures or inject malicious code into the kernel space. The vulnerability affects systems that have modified the default net.inet.icmp.quotelen value, making it exploitable in environments where administrators have customized ICMP behavior for specific network requirements or security policies.

Mitigation strategies should focus on upgrading to patched FreeBSD versions where the padding calculation has been corrected to properly account for 64-bit platform requirements. System administrators should also consider reviewing and normalizing ICMP configuration parameters to avoid non-standard values that could trigger the vulnerability. The fix implemented in the patched versions addresses the core issue by ensuring proper padding calculations regardless of the quote length setting. This vulnerability aligns with CWE-121, which covers stack-based buffer overflow conditions, and represents a variant of memory corruption issues that fall under the ATT&CK technique T1059 for execution through kernel modules or system calls. Organizations should implement network monitoring to detect unusual ICMP traffic patterns that might indicate exploitation attempts, while also ensuring that all FreeBSD systems are updated to the latest stable releases that contain this critical fix.

Reservation

09/18/2018

Disclosure

11/28/2018

Moderation

accepted

CPE

ready

EPSS

0.00382

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!