Fact-checked by Grok 2 weeks ago

wpa_supplicant

wpa_supplicant is an open-source implementation of the /WPA supplicant, serving as the client-side software component that enables secure connections by handling and with access points. Designed to run as a background daemon, it controls wireless interfaces on operating systems including , BSD, macOS, and Windows, supporting protocols such as (using TKIP), (using CCMP/), and , along with various EAP methods for enterprise . Originally developed by Jouni Malinen starting in 2003, with the first public release around April 2003, wpa_supplicant has become the standard tool for // connectivity in many systems, including its integration as a userspace application in the kernel's wireless subsystem to manage supplicant and (Supplicant Management Entity) functions. The software is licensed under the BSD license and includes frontends like the text-based wpa_cli for command-line control and wpa_gui for graphical management, with configuration typically handled via a text file such as wpa_supplicant.conf. It supports roaming between access points in multi-AP environments and is portable across different wireless drivers, making it suitable for desktops, laptops, embedded systems, and even Android devices. In Linux distributions like Arch Linux and Ubuntu, wpa_supplicant plays a central role in command-line Wi-Fi setup, often invoked alongside tools like ifconfig or ip for interface management, and it remains essential for connecting to protected networks without relying on desktop environments like NetworkManager. Ongoing development, led by Malinen and contributors, ensures compatibility with evolving Wi-Fi standards, with releases addressing security advisories and new features through the hostap project.

History

Origins and Initial Development

wpa_supplicant was developed by Jouni Malinen in 2003 as a implementation of the IEEE 802.11i supplicant, primarily targeted at and other operating systems to enable secure authentication in open-source environments. The project emerged in response to the vulnerabilities of the (WEP) protocol, which had been the standard for security but was widely recognized for its cryptographic weaknesses, prompting the need for a robust replacement through the emerging (WPA) standard based on the IEEE 802.11i draft. The initial release of wpa_supplicant took place around April 2003, with early versions (0.x series) providing support for Pre-Shared Key (WPA-PSK) mode and basic (EAP) methods, allowing users to transition from insecure WEP to stronger encryption and authentication mechanisms without relying on closed-source solutions. By 2004, versions such as 0.5.5 introduced full (IEEE 802.11i) compatibility, including pre-authentication and key derivation functions essential for robust enterprise and personal networks. From its inception, the development of wpa_supplicant was hosted under the hostap project at w1.fi, an initiative focused on open-source solutions, and it was released under the BSD license to encourage widespread adoption and contributions. This foundational structure laid the groundwork for wpa_supplicant's evolution, eventually extending support to later standards like WPA3.

Release Milestones and Maintenance

wpa_supplicant has seen a series of major releases that have progressively enhanced its support for evolving security standards. Version 1.0, released on May 10, 2012, added features like support, WPS 2.0, Hotspot 2.0, and for fast roaming. Subsequent updates focused on stability and integration, with version 2.0 released on January 12, 2013, introducing Fast Initial Link Setup (FILS) authentication, Opportunistic Wireless Encryption (OWE), Device Provisioning Protocol (DPP), and enhanced (P2P) concurrency. KRACK (Key Reinstallation AttaCK) vulnerabilities (CVE-2017-13077 and related), disclosed in 2017, were addressed through patches released in October 2017 for versions 2.5 and 2.6, ensuring uniqueness and preventing replay issues without disrupting existing deployments. 2.7, released on December 2, 2018, incorporated these fixes along with support for FILS, OWE, DPP, and MACsec/MKA enhancements. 2.9, released on August 7, 2019, enhanced WPA3 elements with improvements to (SAE) for password-based authentication resistant to offline dictionary attacks, added EAP-TEAP and TLS v1.3 support, while maintaining backward compatibility with WPA2 networks. The most recent major release, 2.11 on July 20, 2024, further bolstered WPA3 capabilities with refinements to SAE anti-clogging mechanisms and bug fixes for edge cases in protected management frames, alongside support for emerging features like 7 (802.11be) extremely high throughput (EHT) modes and Wi-Fi Easy Connect (DPP release 3). Ongoing maintenance is led by original developer Jouni Malinen and a community of contributors through the public repository hosted at w1.fi, where remains active into with regular commits addressing interoperability and performance. Recent efforts have included security patches for newly disclosed vulnerabilities, such as CVE-2025-24912, which fixed improper handling of crafted packets in /wpa_supplicant that could lead to failures in setups, and CVE-2025-27558, mitigating frame injection risks in non-secure A-MSDU processing within mesh networks supporting //. This evolution underscores a commitment to modern standards like in for stronger protection against brute-force attacks, all while preserving compatibility with legacy infrastructure to facilitate gradual transitions in diverse environments.

Technical Overview

Core Architecture

wpa_supplicant operates as a user-space daemon that runs in the background to manage authentication and association processes on and other systems. It interacts with kernel drivers primarily through the nl80211 for modern wireless hardware or the older wext for legacy support, abstracting these via a driver API defined in driver.h and implemented in modular driver-specific files like driver_nl80211.c. Written primarily for and portability, the daemon initializes through main.c, which sets up the core environment and launches the primary control loop in wpa_supplicant.c. The architecture centers on several key components that handle and event processing. The supplicant includes state machines for , , and key negotiation: the state machine in wpa.c manages the 4-Way and Group Key Handshakes, while eapol_sm.c implements the EAPOL supplicant state machine and eap.c handles the EAP state machine with interfaces to various methods. An , implemented in eloop.c, processes asynchronous driver events through wpa_supplicant_event() in events.c, using timeouts and callbacks to respond to network changes, scan results, and handshake progress. For external control and monitoring, a control in ctrl_iface.c supports communication via Unix domain sockets or , enabling tools like wpa_cli to issue commands and receive status updates. The design emphasizes modularity, with plugins for extensible functionality such as EAP methods (e.g., eap_tls.c for TLS-based authentication) and cipher suites (e.g., aes.c for encryption algorithms). In typical operation, wpa_supplicant scans for available networks using core scanning functions, initiates association based on configuration priorities, and derives session keys through the 4-Way Handshake protocol, employing PBKDF2 in sha1.c for pre-shared key (PSK) generation when applicable. This flow ensures secure key negotiation without exposing sensitive operations to user-space applications beyond the controlled interface.

Protocol Support

wpa_supplicant provides core implementation of the IEEE 802.11i standard, enabling support for and WPA2 security protocols with both TKIP and CCMP (-CCMP) ciphers for robust encryption and integrity protection. TKIP offers legacy compatibility through per-packet key mixing and replay protection, while CCMP employs in counter mode with for enhanced security in WPA2 environments. The software fully supports WPA3, incorporating (SAE) for personal networks to provide and resistance to offline attacks, alongside enhanced (EAP) methods for enterprise deployments. was introduced in version 2.6 for compatibility with WPA2 and expanded in subsequent releases like 2.10 for full WPA3-Personal AP and station modes, with further enhancements in version 2.11 (as of July 2024). Enterprise support leverages a wide array of EAP variants, including EAP-TLS, EAP-PEAP, EAP-TTLS, EAP-SIM, EAP-AKA, and EAP-pwd, ensuring interoperability with authentication servers. For legacy and transitional networks, wpa_supplicant maintains backward compatibility with WEP (both 40-bit and 104-bit keys) and open (unencrypted) networks, while integrating Robust Security Network (RSN) elements such as PMKSA caching to optimize re-authentication during roaming. PMKSA caching, part of IEEE 802.11i RSN, stores pairwise master keys to reduce handshake overhead in WPA2 sessions. Beyond core security, wpa_supplicant implements additional IEEE 802.11 standards, including 802.11r for fast Basic Service Set (BSS) transitions to enable seamless roaming with reduced latency (initial support added in version 0.6.0, with enhancements around version 2.6), 802.11w for protected management frames to safeguard against deauthentication and disassociation attacks, and IBSS/ad-hoc modes for peer-to-peer connectivity without an access point. Version 2.11 also introduces initial support for Wi-Fi 7 (IEEE 802.11be) features, such as enhanced multi-link operations, along with updates to Device Provisioning Protocol (DPP) release 3 for Wi-Fi Easy Connect.

Features

Authentication and Encryption Methods

wpa_supplicant supports secure connections through a variety of methods in both personal and enterprise modes, enabling compatibility with , , and standards. In personal mode, wpa_supplicant implements -Personal, -Personal, and -Personal using pre-shared s (PSK). For and , the pairwise master (PMK) is derived from the using with HMAC-SHA1, performing 4096 iterations to produce a 256-bit resistant to brute-force attacks. In -Personal, relies on (SAE), a Dragonfly-based that derives the PMK using HKDF-SHA256 for enhanced and protection against offline dictionary attacks, even with weak passphrases. For enterprise mode, wpa_supplicant facilitates via (EAP) methods, integrating with external servers for centralized credential verification. Supported EAP variants include EAP-TLS for certificate-based using , EAP-PEAP which tunnels MS-CHAPv2 inside a TLS-encrypted channel for password , and EAP-TTLS for flexible inner methods within a TLS tunnel. Additional options encompass EAP-SIM and EAP-AKA for SIM card-based in mobile networks, as well as EAP-PWD for secure password-based over untrusted channels without certificates. Encryption in wpa_supplicant adheres to robust mandated by modern standards. -CCMP, based on in mode with , serves as the mandatory pairwise cipher for WPA2 and WPA3, providing 128-bit confidentiality and integrity protection. Legacy support includes TKIP with for WPA compatibility, though it is deprecated due to vulnerabilities. For WPA3, GCMP (Galois/ Mode) is available as an optional 128-bit or 256-bit cipher, offering with associated data for improved performance and security in high-throughput environments. Group key handshakes ensure broadcast/multicast traffic encryption using these ciphers. Credential storage in wpa_supplicant emphasizes through encrypted or external to prevent exposure of sensitive like passphrases and certificates. Primary storage occurs in configuration files such as wpa_supplicant.conf, where PSKs can be hashed and EAP credentials referenced via file paths or inline encoding. For enhanced protection, external password providers or integration via frontends like with daemons such as allow secure retrieval of passwords and certificates, avoiding text storage in configs; alternatively, interfaces support hardware tokens such as smartcards or TPMs for EAP-TLS. PMKSA caching further optimizes by storing derived keys temporarily without re-exposing credentials.

Advanced Networking Capabilities

wpa_supplicant provides (WPS) support to simplify device provisioning on wireless networks, enabling methods such as Configuration (PBC) for quick activation via a physical button and PIN-based enrollment for manual entry of an eight-digit code. This feature allows clients to join secured networks without entering lengthy passphrases, streamlining setup for home and small office environments while maintaining compatibility with and WPA2 protocols. For improved mobility, wpa_supplicant implements pre-authentication and Pairwise Master Key Security Association (PMKSA) caching, which facilitate seamless between access points within the same extended (ESS). Pre-authentication enables a to authenticate with a target access point before disassociating from the current one, reducing latency, while PMKSA caching stores derived keys to avoid full re-authentication on subsequent connections to known networks. These mechanisms are particularly beneficial in enterprise deployments with multiple access points, minimizing disruptions during movement. wpa_supplicant incorporates support for IEEE 802.11u, also known as Hotspot 2.0, which automates network selection by allowing devices to query access points for venue-specific information, subscription details, and roaming consortia via the Generic Advertisement Service (GAS) protocol. Complementing this, IEEE 802.11v (Wireless Network Management) support enables network optimization features like BSS transition management, where access points can suggest or direct clients to better-suited channels or access points based on load and signal quality. These capabilities enhance user experience in public hotspots and dense environments by promoting efficient resource allocation without manual intervention. As of 2025, version 2.11 adds initial support for IEEE 802.11be (Wi-Fi 7), enabling enhanced multi-link operations and higher throughput in advanced networking scenarios. Runtime management is facilitated through dedicated tools: wpa_gui, a graphical user interface built with the framework, offers visual control over network connections, scanning results, and status monitoring; meanwhile, wpa_cli provides a for interactive control, event monitoring, and scripting via the control interface. Additionally, wpa_supplicant includes background scanning to periodically probe for available networks without interrupting active connections and auto-reconnection logic to automatically re-establish links upon signal loss or timeout. These tools and processes ensure robust operation in dynamic scenarios. In non-infrastructure modes, wpa_supplicant supports Independent Basic Service Set (IBSS) for ad-hoc networking, allowing direct connections among stations without an access point, configurable via parameters like initial channel selection. It also enables IEEE 802.11s , supporting multi-hop topologies with features like mesh peering management and secured links using protocols such as for authentication. These modes extend wpa_supplicant's utility to decentralized setups, such as temporary networks or community deployments.

Configuration and Usage

Basic Setup and Command-Line Options

wpa_supplicant can be installed on Debian-based systems, such as , using the with the command [sudo](/page/Sudo) apt install wpasupplicant. For systems without pre-built packages or for custom builds, it can be compiled from by downloading the tarball from the official repository, creating a .config file to enable desired features (e.g., CONFIG_DRIVER_NL80211=y), and running make followed by copying the binaries to a system directory like /usr/local/bin. The basic invocation of wpa_supplicant requires specifying the network interface, , and backend. The core command is wpa_supplicant -i<interface> -c<config_file> -D<driver>, where -i designates the wireless interface (e.g., wlan0), -c points to the (e.g., /etc/wpa_supplicant.conf), and -D selects the (e.g., nl80211 for modern drivers supporting cfg80211). For example, to run in the foreground with debugging output: wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -D nl80211 -d. To detach and run as a daemon, add the -B flag: wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D nl80211. A minimal configuration file for connecting to a WPA-PSK protected consists of a network block specifying the SSID and . For instance:
[network](/page/Network)={
    ssid="example_network"
    psk="your_[passphrase](/page/Passphrase)"
}
This file, typically placed at /etc/wpa_supplicant.conf, enables with the specified access point using WPA-PSK . Permissions should be restricted to (e.g., chmod 600 /etc/wpa_supplicant.conf) to protect the passphrase. After successful , assignment is handled by integrating wpa_supplicant with a DHCP client such as dhclient or udhcpc. This is commonly achieved using the wpa_cli tool with an action triggered on events; for example, wpa_cli -i wlan0 -a /path/to/action_[script](/page/Script) where the script runs dhclient wlan0 upon receiving a CONNECTED event. Similarly, udhcpc can be invoked in the script for lightweight environments. Common troubleshooting issues include driver mismatches, which can prevent . To diagnose, run wpa_supplicant in debug mode with -d to log output revealing unsupported drivers or problems; ensure the correct is specified via -D (e.g., switching to nl80211 if wext fails on modern hardware). Verify module loading with lsmod and status with iwconfig or ip link.

Advanced Configuration Files and Integration

The wpa_supplicant configuration file, typically named wpa_supplicant.conf, employs a structured text format to define global parameters and per-network settings for Wi-Fi authentication and association. Global parameters set overarching behaviors, such as ctrl_interface=/var/run/wpa_supplicant, which establishes a Unix domain socket for external control and management by tools like wpa_cli, and update_config=1, which permits the daemon to dynamically modify the file during runtime, including overwriting sections added via control interfaces. Network blocks, enclosed in curly braces, specify details for individual SSIDs; each begins with network={, followed by parameters like ssid="network_name" to identify the target, scan_ssid=1 to enable active probing for hidden networks, key_mgmt=WPA-PSK or WPA-EAP to select pre-shared key or enterprise authentication modes, and proto=WPA RSN (where RSN denotes WPA2/WPA3) to specify supported protocol versions. Advanced options within network blocks enhance efficiency and privacy. For instance, fast_reauth=1 (the default) allows reuse of authentication credentials during re-association to the same access point, reducing connection latency without full re-authentication. The bgscan parameter configures background scanning for roaming, using formats like bgscan=simple:30:-45:300 to trigger scans every 30 seconds if signal strength drops below -45 dBm, with a 300-second holdoff period after association. Privacy features include macaddr=1, which randomizes the for each extended service set (ESS) to mitigate tracking, or macaddr=2 to preserve the original organization's unique identifier (OUI) while randomizing the remainder. wpa_supplicant integrates seamlessly with network management daemons like and ConnMan through its control interface, invoked via the -u command-line option, enabling these tools to query status, initiate scans, and manage connections without direct file access. For , this involves starting wpa_supplicant with support (requiring CONFIG_CTRL_IFACE_DBUS=y at compile time) and specifying a service file like /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service. ConnMan similarly leverages the interface for Wi-Fi handling, often combined with the -O option to customize control paths. Automation is facilitated by wpa_cli, a command-line utility that interacts with the control interface for scripting tasks. Common commands include wpa_cli status to retrieve current connection details like SSID and signal strength, and wpa_cli scan followed by wpa_cli scan_results to discover available networks programmatically, requiring CONFIG_CTRL_IFACE=y and CONFIG_READLINE=y during compilation. To manage multiple interfaces, wpa_supplicant instances are launched per interface using the -i option (e.g., wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf), with enabling centralized oversight across them; this supports scenarios like simultaneous client and virtual access point operations when paired with compatible drivers. For virtual networks, wpa_supplicant can configure secondary interfaces in ad-hoc or modes within dedicated blocks, allowing coexistence with primary client associations.

Security

Known Vulnerabilities

One of the most significant vulnerabilities affecting wpa_supplicant was the , disclosed in 2017 under CVE-2017-13077 and related identifiers (CVE-2017-13078 through CVE-2017-13082). This flaw in the WPA2 four-way handshake protocol allowed an attacker within wireless range to force reuse, reinstalling already-in-use encryption keys and enabling decryption of sensitive data, replay attacks, and potential without compromising the initial . In 2019, the Dragonblood attacks targeted WPA3's Simultaneous Authentication of Equals (SAE) handshake, primarily through side-channel timing vulnerabilities in wpa_supplicant's implementation, allowing partial password recovery on resource-constrained devices via observable response delays during password-to-element conversions. Additional issues included denial-of-service via anti-clogging token exhaustion and downgrade attacks to weaker authentication modes. CVE-2025-27558, identified in May 2025, permitted frame injection in mesh networks using wpa_supplicant versions up to 2.11, exploiting improper handling of non-Spatial Stream Protected (non-SSP) Aggregate MAC (A-MSDU) frames to inject arbitrary traffic, potentially bypassing encryption in , , , or WEP environments. This stemmed from an incomplete fix for the earlier FragAttacks suite (CVE-2020-24588 et al.). A PEAP bypass , tracked as CVE-2023-52160 and highlighted in Security Advisory BSA-2024-2730, affected wpa_supplicant through version 2.10, allowing attackers to skip 2 inner by exploiting decryption flaws in EAP-PEAP sessions, enabling unauthorized network access if Phase 2 was misconfigured or absent. Additionally, CVE-2024-5290 revealed an arbitrary shared object loading issue in Ubuntu-packaged wpa_supplicant prior to 2024 patches, permitting local unprivileged users with netdev group access to escalate privileges by injecting malicious libraries via the control interface, exploiting insecure dynamic loading paths.

Mitigation Strategies and Best Practices

To mitigate known vulnerabilities in wpa_supplicant, including those disclosed in 2025, administrators should always update to the latest version, such as 2.11 or higher, and enable automatic security updates through package managers like apt or yum. The official hostapd project releases incorporate patches for critical issues, ensuring protection against remote code execution and denial-of-service flaws in authentication handling. Disabling legacy protocols is essential for enhancing , as WEP and TKIP are vulnerable to attacks due to weak and . In the wpa_supplicant.conf file, specify proto=WPA3 or proto=WPA2 WPA3 to enforce modern standards and prevent fallback to insecure options like WEP or TKIP, which can be explicitly excluded with pairwise=CCMP and group=CCMP. Where supported by the access point, prioritize WPA3-SAE () over WPA2-PSK for its and resistance to offline dictionary attacks. Several best practices further secure wpa_supplicant deployments. Enable randomized addresses by setting mac_addr=1 in the network block of wpa_supplicant.conf, which generates a unique address per connection to prevent device tracking across networks. Disable (WPS) if not in use by omitting wps=enabled or setting wps_disabled=1 in the configuration, as WPS is prone to brute-force PIN attacks. Regularly monitor system logs for failed attempts using tools like journalctl, filtering for wpa_supplicant events to detect potential brute-force or deauthentication attacks. For public or enterprise networks, prefer WPA-Enterprise mode with strong EAP methods like EAP-TLS or PEAP-MSCHAPv2, configured via eap=PEAP key_mgmt=WPA-EAP, to leverage certificate-based over pre-shared keys. Hardening the runtime environment reduces risks. Run wpa_supplicant as a non-root user by creating a dedicated group (e.g., wpapriv) and setting appropriate permissions on /var/run/wpa_supplicant, allowing the process to drop privileges after initialization with the -u flag or via systemd service overrides. Restrict access to the control interface by configuring ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev in wpa_supplicant.conf and limiting the directory to read/write by the netdev group, preventing unauthorized commands via wpa_cli. Integrate with firewall rules, such as using or , to restrict traffic on driver interfaces (e.g., wlan0) to only necessary ports like 1812/ for , minimizing exposure of the supplicant to external threats. For verification, test configurations using wpa_supplicant's debug mode with the -dd flag (e.g., wpa_supplicant -i wlan0 -c wpa_supplicant.conf -dd), which outputs detailed logs of handshakes, key exchanges, and authentication flows to confirm secure protocol negotiation without legacy fallbacks. This mode helps identify misconfigurations, such as unintended TKIP usage, before production deployment.

Implementations

Supported Platforms

wpa_supplicant is primarily supported on , where it integrates with kernel modules such as cfg80211 and nl80211 for modern wireless drivers, as well as the older Wireless Extensions interface. This makes it a core component for management in distributions ranging from desktop environments to servers. Among BSD variants, it has native support on through the ports collection, utilizing the net80211 framework for wireless operations. NetBSD includes a port of wpa_supplicant, adapted to its net80211 layer for handling WPA authentication and roaming. includes a port of wpa_supplicant, primarily for WPA-Enterprise authentication with its net80211 layer. Other Unix-like systems feature ports or integrations, including , where wpa_supplicant is documented as a utility for managing connections on network interfaces. provides a port via its package depot, supporting and WPA2 on compatible hardware. It is also supported on macOS, where it can be compiled from source and used with compatible wireless drivers. For embedded environments, wpa_supplicant runs on routers and is integrated into through external builds in the Android Open Source Project. Desktop ports extend to Microsoft Windows, where it operates using a libpcap-compatible such as Npcap (successor to WinPcap) for packet capture and NDIS wrappers, though typically requiring compilation from . Historically, a port exists for and its successor , enabling support on legacy systems. In terms of hardware compatibility, wpa_supplicant works with most open-source drivers for chipsets from Atheros (via ath or net80211), (brcmfmac or wl), and (iwlwifi or iwlagn), facilitating broad adapter support. However, drivers or binary blobs, such as certain closed-source modules, may impose limitations or require additional configuration for full functionality. As of 2025, wpa_supplicant remains active on platforms like , where it handles configuration out-of-the-box, and in automotive distributions such as Automotive Grade Linux (AGL), supporting vehicle and connectivity needs.

Integration with Network Management Tools

wpa_supplicant integrates seamlessly with on desktops through its interface, enabling automatic management of profiles and connections without manual intervention. launches wpa_supplicant as a backend daemon, using the D-Bus plugin to handle authentication, scanning, and roaming, which allows users to configure networks via graphical or command-line tools provided by . In lightweight environments such as embedded or mobile systems, wpa_supplicant supports ConnMan by serving as the backend for authentication and scanning operations. ConnMan invokes wpa_supplicant to manage // connections, leveraging its control for efficient resource use in resource-constrained setups. For traditional network setups using ifupdown scripts, wpa_supplicant employs the wpa_action script to respond to interface events, automating connection establishment and teardown based on /etc/network/interfaces configurations. On , wpa_supplicant forms a core component of the (AOSP) stack, handling supplicant duties for secure connections. It is controlled primarily through the wpa_supplicant.conf file for static configurations and the for dynamic management, interfacing with the to enable features like network selection and credential storage. wpa_supplicant provides utilities like wpa_cli for interactive control, allowing real-time commands such as scanning, adding networks, and checking status via its control interface. Complementing this, the iw tool from the wireless-tools suite can be used alongside wpa_supplicant for low-level scanning and interface queries, often in scripts to verify hardware capabilities before initiating connections. For automated setups, scripting examples integrate wpa_supplicant with init systems like ; for instance, enabling [email protected] ensures auto-connection to predefined networks on boot. Cross-platform compatibility is enhanced by wpa_supplicant's or control interface, which supports tools such as wpa_gui on both Windows and for visual management of profiles and events. This interface allows third-party applications to query status, trigger scans, and manage sessions uniformly across operating systems.

References

  1. [1]
    Linux WPA/WPA2/WPA3/IEEE 802.1X Supplicant
    Jan 12, 2013 · wpa_supplicant is designed to be a "daemon" program that runs in the background and acts as the backend component controlling the wireless ...
  2. [2]
    wpa_supplicant man - Linux Command Library
    wpa_supplicant was initially developed by Jouni Malinen, with its first public release around 2003. It quickly became the definitive implementation for WPA and ...
  3. [3]
    wpa_supplicant Linux documentation page
    wpa_supplicant is a userspace application which works as a WPA supplicant and SME (to handle initiating MLME commands).Supported Linux Wireless... · Download · Enabling Control Interface...
  4. [4]
    wpa_supplicant - ArchWiki
    Oct 10, 2025 · wpa_supplicant is a cross-platform supplicant with support for WPA, WPA2 and WPA3 (IEEE 802.11i). It is suitable for desktops, laptops and embedded systems.
  5. [5]
    hostapd and wpa_supplicant
    Nov 11, 2023 · hostapd is a user space daemon for access points, and wpa_supplicant is a user space IEEE 802.1X/WPA supplicant (wireless client).Linux WPA Supplicant (IEEE... · Hostapd: IEEE 802.11 AP... · Security advisories<|control11|><|separator|>
  6. [6]
    Changelog - hostapd and wpa_supplicant
    No information is available for this page. · Learn why
  7. [7]
  8. [8]
    hostapd/wpa_supplicant - new release v2.11 - Mailing Lists
    Jul 20, 2024 · New versions of wpa_supplicant and hostapd were just released and are now available from https://w1.fi/. This release follows the v2.x style.WPA3-Personal: wpa_supplicant in AP mode issuehostapd/wpa_supplicant - new release v2.0More results from lists.infradead.org
  9. [9]
    CVE-2025-24912 Detail - NVD
    Mar 12, 2025 · Description. hostapd fails to process crafted RADIUS packets properly. When hostapd authenticates wi-fi devices with RADIUS authentication, ...
  10. [10]
    CVE-2025-27558 Detail - NVD
    May 21, 2025 · An adversary can exploit this vulnerability to inject arbitrary frames towards devices that support receiving non-SSP A-MSDU frames.
  11. [11]
    wpa_supplicant: Structure of the source code - HostAP
    wpa_supplicant implementation is divided into number of independent modules. Core code includes functionality for controlling the network selection, association ...Missing: architecture documentation
  12. [12]
  13. [13]
  14. [14]
    [PDF] wpa_supplicant/hostapd
    Nov 28, 2009 · wpa_supplicant and hostapd. The goal of this documentation and comments in the source code is to give enough information for other.<|control11|><|separator|>
  15. [15]
    wpa_supplicant / hostapd: src/wps/wps.h File Reference
    This function is called on an AP when a push button is pushed to activate PBC mode. The PBC mode will be stopped after walk time (2 minutes) timeout or when a ...
  16. [16]
    wpa_config Struct Reference - hostapd and wpa_supplicant
    This is a space-separated list of supported WPS configuration methods. For example, "label virtual_display virtual_push_button keypad". Available methods ...
  17. [17]
    wpa_ssid Struct Reference - hostapd and wpa_supplicant
    Proactive key caching is used to make supplicant assume that the APs are using the same PMK and generate PMKSA cache entries without doing RSN pre- ...
  18. [18]
    wpa_supplicant / hostapd: src/drivers/driver.h File Reference
    Driver makes use of OBSS scan mechanism in wpa_supplicant. #define, WPA_DRIVER_FLAGS_IBSS 0x08000000. Driver supports IBSS (Ad-hoc) mode. #define ...
  19. [19]
    wpa_supplicant / hostapd: File List
    Wpa_supplicant - WPA2/RSN pre-authentication functions. | o * tdls.c ... PKCS #1 (RSA Encryption). | o * pkcs1.h, PKCS #1 (RSA Encryption). | o ...<|control11|><|separator|>
  20. [20]
    src/common/ieee802_11_defs.h Source File
    Sep 27, 2015 · 390 /* Access Network Query Protocol info ID definitions (IEEE Std 802.11u-2011) */ ... 1259 /* IEEE 802.11v - BSS Transition Management Request - ...<|separator|>
  21. [21]
    wpa_supplicant control interface
    The wpa_supplicant control interface allows external programs to control the daemon, get status, and receive event notifications via a C library. External ...
  22. [22]
    ath10k mesh mode — Linux Wireless documentation
    Both of open MP and secured MP can be brought up using wpa_supplicant. This section will instruct the steps to both of open and secured MP setup.
  23. [23]
  24. [24]
    wpa_supplicant(8) - Linux man page - Die.net
    wpa_supplicant is an implementation of the WPA Supplicant component, ie, the part that runs in the client stations. It implements WPA key negotiation.Missing: official | Show results with:official
  25. [25]
  26. [26]
    KRACK Attacks: Breaking WPA2
    This website presents the Key Reinstallation Attack (KRACK). It breaks the WPA2 protocol by forcing nonce reuse in encryption algorithms used by Wi-Fi.
  27. [27]
    Dragonblood: Analysing WPA3's Dragonfly Handshake
    In practice the main risks for WPA3 are downgrade attacks, and possible timing attacks against resource-constrained devices. The authentication bypass attacks ...
  28. [28]
    [PDF] Analyzing the Dragonfly Handshake of WPA3 and EAP-pwd
    Apr 23, 2019 · For SAE, wpa_supplicant 2.1 to 2.4 are affected by reflection attacks. ... Figure 5: Response time distributions of example timing attacks ...
  29. [29]
  30. [30]
    BSA-2024-2730 - Broadcom support portal
    Nov 12, 2024 · The implementation of PEAP in wpa_supplicant through 2.10 allows authentication bypass. Product/Component. Brocade Fabric OS. 2 more products.Missing: 10 | Show results with:10
  31. [31]
    CVE-2024-5290 - Ubuntu
    Aug 6, 2024 · An issue was discovered in Ubuntu wpa_supplicant that resulted in loading of arbitrary shared objects, which allows a local unprivileged attacker to escalate ...Missing: pre- | Show results with:pre-
  32. [32]
    Versions for wpa-supplicant - Repology
    Versions for wpa-supplicant ; Adélie Linux current · wpa_supplicant-openrc · 2.9 · Potentially vulnerable ; AlmaLinux 8 · wpa_supplicant, 2.10 ; AlmaLinux 9
  33. [33]
    wpa_supplicant - Gentoo Wiki
    wpa_supplicant includes a tool to quickly write a network block from the command line for pre-shared key (WPA-PSK aka password) networks, wpa_passphrase.
  34. [34]
    MAC address spoofing - ArchWiki
    Aug 25, 2025 · wpa_supplicant can use random MAC address for each ESS connection(AP) ... If set to full , all six octets of the address are randomized.
  35. [35]
  36. [36]
    wpa_supplicant.conf(5) - FreeBSD Manual Pages
    It implements WPA key negotiation with a WPA Authenticator and EAP authen- tication with Authentication Server using configuration information stored in a text ...<|separator|>
  37. [37]
    [PDF] Security and Hardening Guide - openSUSE Documentation
    May 30, 2023 · This guide introduces basic concepts of system security and describes the usage of security software included with the product, such as AppArmor ...
  38. [38]
    security/wpa_supplicant: Supplicant (client) for WPA/802.1x protocols
    wpa_supplicant is a client (supplicant) with support for WPA and WPA2 (IEEE 802.11i / RSN). It is suitable for both desktop/laptop computers and embedded ...
  39. [39]
    OpenBSD Ports Readme: port security/wpa_supplicant
    wpa_supplicant is the implementation of an IEEE 802.1X supplicant for wired (Ethernet PAE) and wireless (WPA/WPA2) authentication.
  40. [40]
    wpa_supplicant-version - QNX
    IEEE 802.11r; IEEE 802.11w; Wi-Fi Protected Setup (WPS); The following authentication methods are supported with an integrated IEEE 802.1X Supplicant: EAP-TLS ...
  41. [41]
    WPA Supplicant - Haiku Depot Server
    A WPA Supplicant for Linux, BSD, macOS, Windows, and Haiku with support for WPA and WPA2 (IEEE 802.11i / RSN). It is suitable for both desktop/laptop computers ...Missing: port | Show results with:port
  42. [42]
    [OpenWrt Wiki] wpa_supplicant
    Jan 14, 2022 · wpa_supplicant is a WPA Supplicant for Linux, BSD, Mac OS X, and Windows with support for WPA and WPA2 (IEEE 802.11i / RSN).Missing: official | Show results with:official
  43. [43]
  44. [44]
    wpa_supplicant for OS/2 - ArcaOS download | SourceForge.net
    Apr 2, 2022 · Download wpa_supplicant for OS/2 - ArcaOS for free. This is the port of wpa_supplicant to OS/2 (ArcaOS, eComStation).
  45. [45]
    Porting to different target boards and operating systems
    wpa_supplicant is designed for portability. Porting involves implementing driver wrappers, and OS-specific entry points, and may require new l2_packet ...Missing: AROS | Show results with:AROS
  46. [46]
    Wpa supplicant with multiple networks - Raspberry Pi Forums
    I have two Wifi networks and I want my Pito connect with the first with priority 1 which is my mobile phone hotspot. I have followwing Wpa-supplicant file.
  47. [47]
    wpa_supplicant.conf
    This process uses lot of CPU and wpa_supplicant # startup and reconfiguration time can be optimized by generating the PSK only # only when the passphrase or ...
  48. [48]
    ConnMan - ArchWiki
    Apr 13, 2025 · In order to have Wi-Fi scanning support from within connman, install wpa_supplicant and then restart connman.service after you stop iwd.service ...Installation · Usage · Wi-Fi · Tips and tricks