CVE-2026-73197
Executive Summary
CVE-2026-73197 is an unauthenticated denial-of-service (DoS) vulnerability in FreeIPA, an open-source identity management solution. A remote attacker can exploit this flaw by sending oversized form POST requests to the /ipa/migration/migration.py endpoint, forcing the migration handler to fully read attacker-controlled request bodies into memory, which results in elevated memory consumption and potential service disruption. The vulnerability affects the availability of FreeIPA deployments but does not compromise confidentiality or integrity; however, no patch is currently available, and the vendor has not yet published official remediation guidance. The CVSS 3.1 score is 7.5 (High), reflecting the ease of exploitation via the network with no authentication requirement.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
FreeIPA integrates multiple open-source components to provide centralized authentication, policy management, and directory services. The migration endpoint at /ipa/migration/migration.py is designed to assist in migrating legacy LDAP directories into FreeIPA's directory server. As part of its standard HTTP handling, the endpoint accepts form-encoded POST requests containing user and group data to be imported.
The vulnerability exists in the way the migration handler processes request bodies. When a client sends a standard form POST request to the migration endpoint, the underlying framework reads the entirety of the request body into memory before the handler can parse the form fields. If an attacker crafts a POST request with an abnormally large body (e.g., filling the body with large-name fields or padding data), the framework will allocate memory proportional to the body size. Since there is no size limit or streaming mechanism in place, each oversized request forces the server to consume a large amount of resident memory.
The flaw is classified under CWE-770, which covers the allocation of resources without limits or throttling. In this case, the resource is memory, and the allocation is unbounded relative to attacker input. This class of vulnerability is often referred to as "unbounded request body" or "memory exhaustion" and is commonly exploited by sending multiple concurrent oversized requests to amplify the effect.
From an attack mechanism perspective, the request does not require any authentication, and the network attack complexity is low. The attacker does not need any special privileges or user interaction. The primary technical impact is a gradual — but potentially rapid — exhaustion of available memory on the FreeIPA server, leading to slower request handling, possible swapping, and in severe cases, full service disruption or crash of the FreeIPA processes (e.g., the Apache front-end or the Directory Server). Since FreeIPA is a central identity provider, a disruption of its services can have cascading effects on all downstream consumers of authentication and authorization services.
Insufficient technical detail is available regarding the exact framework memory-handling internals of the migration handler. However, the vulnerability class (CWE-770: Allocation of Resources Without Limits or Throttling) combined with the endpoint description strongly suggests the absence of a request body size enforcement mechanism at the application layer, the web server layer, or both.
Exploitation Scenarios
Based strictly on the NVD description and the vulnerability class, the attack chain is as follows:
1) Reconnaissance / Target Identification
- An attacker identifies a FreeIPA server by scanning for its management interface, which may be exposed on default web ports (443/80) or via virtual host enumeration.
- The attacker can confirm the target by requesting the
/ipa/migration/migration.pyendpoint and observing a response (e.g., an HTTP 200, a redirect, or a form response). If the endpoint responds or shows evidence of an active FreeIPA deployment, the target is confirmed. - Shodan or other internet-wide scanning tools can be used to enumerate FreeIPA instances using fingerprints associated with the login page or the migration path.
2) Triggering the Flaw
- The attacker crafts an HTTP POST request to
/ipa/migration/migration.pywith aContent-Typeofapplication/x-www-form-urlencoded(the default for HTML form submission). - The request body is filled with an oversized payload. For example, the attacker can include numerous form fields with large
nameattributes or pad the body with a long series ofacharacters in a single field value (e.g.,username=aaaaa...aaarepeated thousands of times). - The request body size should be in the range of tens to hundreds of megabytes to cause meaningful memory pressure. The attacker does not need to conform to any valid migration schema because the memory allocation occurs before the data is validated or processed.
3) Payload / Execution Method
- The attacker can send either a single extremely large request (e.g., 500 MB) or, more commonly, multiple medium-sized requests (e.g., 50 MB each) concurrently from a small number of connections.
- Because the handler reads the body fully into memory before validating content, the server's memory footprint grows in direct proportion to the request body sizes.
- The HTTP connection is kept alive while the server consumes the body, allowing the attacker to tie up both network connections and memory simultaneously.
4) Post-Exploitation Impact
- The FreeIPA server's memory utilization spikes. Once available memory is exhausted, the host may begin swapping heavily, causing extreme latency for all requests (including legitimate authentication requests).
- In severe cases, the operating system's OOM (out-of-memory) killer may terminate FreeIPA-related processes, causing a complete outage of identity services.
- This DoS can be sustained by repeating the requests, indefinitely denying service to legitimate users. There is no data exfiltration or integrity compromise, but the availability of the identity provider is effectively destroyed.
Note: No public PoC is available. The attack chain is inferred from the vulnerability class (CWE-770) and the described endpoint behavior. Attackers often use simple tooling such as curl, wget, or custom Python/Go scripts to generate and send oversized HTTP bodies.
Impact Assessment
| Aspect | Impact |
|---|---|
| CVSS Score | 7.5 (High) |
| CVSS Vector | AV:N / AC:L / PR:N / UI:N / S:U / C:N / I:N / A:H |
| Confidentiality | None (C:N) — no data disclosure |
| Integrity | None (I:N) — no data modification |
| Availability | High (A:H) — significant service degradation or full outage possible |
| Authentication Required | None (PR:N) — unauthenticated remote exploitation |
| User Interaction | None (UI:N) — no victim action needed |
| Scope | Unchanged (S:U) — impact contained to the vulnerable component/system |
Business Impact:
- Identity Availability: FreeIPA acts as a central broker for Kerberos, LDAP, DNS, and certificate services. A DoS condition on FreeIPA will prevent or severely degrade user and machine authentication across the entire domain.
- Infrastructure Dependency: Any system that relies on FreeIPA for authentication (SSH key-based login, sudo policies, web applications via SSSD, etc.) will experience cascading failures.
- Blast Radius: In a single-domain environment, the entire domain is impacted. In multi-site or replicated environments, the primary server becoming unavailable may cause failover but could also introduce replication delays or split-brain risks.
- Recovery Cost: Manual intervention is required to restart processes; if memory exhaustion causes a full host crash (OOM reboot), recovery time increases significantly.
Affected Systems:
- FreeIPA servers with the migration endpoint enabled and exposed to untrusted networks.
- The vulnerability is especially critical for internet-facing FreeIPA instances, although internal exposure still poses risk from compromised internal hosts.
Detection Guidance
The following detection rules are designed to identify potential exploitation attempts. They should be tuned to local network traffic patterns and log formats.
Sigma Rule
title: FreeIPA Migrate Endpoint Oversized POST Body DoS Attempt
id: 42b8f3e1-9c2d-4a6e-bb9f-1d4c7e8a9b0c
status: experimental
description: Detects HTTP POST requests to the FreeIPA migration endpoint with abnormally large request bodies, indicative of CVE-2026-73197 exploitation attempts.
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-path: /ipa/migration/migration.py
filter_baseline:
cs-bytes|range:
lt: 10485760 # 10 MB baseline threshold
condition: selection and not filter_baseline
falsepositives:
- Legitimate migration of very large directories (rare in practice)
- Monitoring/health-check scripts sending dummy data
level: high
tags:
- attack.t1190
- cve.2026.73197
- cwe.770
YARA Rule
rule CVE_2026_73197_FreeIPA_Migration_DoS {
meta:
author = "ValtersIT Threat Intel"
description = "Detects oversized HTTP POST bodies targeting FreeIPA migration endpoint"
cve = "CVE-2026-73197"
date = "2026-05-30"
strings:
$endpoint = "/ipa/migration/migration.py" ascii wide nocase
$content_type = "application/x-www-form-urlencoded" ascii wide nocase
condition:
// Detect raw HTTP request packet with the endpoint and a large content length
$endpoint and $content_type and (
// Content-Length greater than 10 MB
// Note: YARA on raw packets may not see full packet; use file/capture context
filesize > 10000000 or (uint16(0) == 0x4854 and filesize > 10000000) // 0x4854 = 'HT' (HTTP)
)
}
Note: The YARA rule above is designed for use on pcap or HTTP request capture files, not for scanning arbitrary binaries. If deploying on a network monitoring appliance, adjust file size thresholds to match the expected request body size threshold.
Suricata IDS Rule
alert http any any -> $HOME_NET any (msg:"CVE-2026-73197 FreeIPA Migration Endpoint Oversized POST DoS Attempt"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/ipa/migration/migration.py"; http.request_body; length:10485760; content:"!"; http.client_body; and file_data; reference:cve,2026-73197; classtype:attempted-dos; sid:7319701; rev:1;)
Note: The Suricata rule above uses the http.request_body keyword to inspect the body length. Depending on Suricata version, you may need http.request_body or file_data to inspect the body. The above rule alerts when the body is at least 10 MB in size for the specific endpoint. Adjust the sid and thresholds as needed.
Elastic Detection
sequence by source.ip, destination.ip with maxspan=5m
[http where request.method == "POST" and request.path == "/ipa/migration/migration.py" and request.bytes > 10485760]
| alert
Alternative (single-event detection):
http where request.method == "POST"
and request.path == "/ipa/migration/migration.py"
and request.bytes > 10485760
Splunk SPL Query
index=web sourcetype=access_combined OR sourcetype=iis OR sourcetype=apache
| search method=POST uri=/ipa/migration/migration.py
| eval body_size = if(isnull(bytes), 0, bytes)
| where body_size > 10485760
| stats count as attempts by src_ip, uri, _time
| sort - attempts
Alternative query using Splunk Stream (network metadata):
index=stream_http sourcetype=stream:http
| search http_request_method=POST http_request_uri=/ipa/migration/migration.py http_content_length>10485760
| stats count by src_ip, http_request_uri
Wazuh OSSEC Rule
<group name="freeipa,">
<rule id="731970" level="12">
<decoded_as>json</decoded_as>
<field name="http.method">POST</field>
<field name="http.uri">/ipa/migration/migration.py</field>
<description>FreeIPA migration endpoint POST with oversized body - possible DoS attempt (CVE-2026-73197)</description>
<group>attack.t1190,cve.2026.73197,cwe.770,</group>
</rule>
<rule id="731971" level="12" frequency="10" timeframe="60">
<if_matched_sid>731970</if_matched_sid>
<description>High frequency of oversized POSTs to FreeIPA migration endpoint - DoS attack in progress</description>
<group>attack.t1190,cve.2026.73197,cwe.770,</group>
</rule>
</group>
Note: The Wazuh rules above assume the Apache/Web server logs are being parsed and that the http.method and http.uri fields are populated correctly. You may need to adjust mapping based on your Wazuh decoder configuration (logstash, grok, or custom decoder). Also replace the decoded_as line with your actual log parser format if different.
Mitigation & Patch Guidance
Current Patch Status: No patch or vendor advisory is available (confidence 0/4). The vulnerability is unpatched as of the date of this report.
Immediate Mitigations (Compensating Controls)
- Network-Level Rate Limiting: Deploy rate-limiting rules at the reverse proxy, load balancer, or firewall to cap the number of requests per source IP to the
/ipa/migration/migration.pyendpoint. This does not stop a single large request but prevents volumetric amplification. - Request Size Limit Enforcement: Configure an upstream reverse proxy (e.g., NGINX or Apache) to reject requests with a
Content-Lengthabove a reasonable threshold (e.g., 10 MB) for the migration endpoint. Example NGINX directive:location /ipa/migration/ { client_max_body_size 10m; } - Restrict Endpoint Access: If the migration feature is not actively used, disable the endpoint at the web server level or restrict access to it from trusted management networks only (e.g., via IP allow-lists).
- WAF Rules: Deploy a Web Application Firewall (WAF) rule that inspects
Content-Lengthand blocks POST requests to the endpoint exceeding a size threshold. - Memory Monitoring / Alerts: Set up alerts on memory utilization of FreeIPA processes so that an anomalous spike triggers immediate incident response and potential automated restart.
Patch / Upgrade Steps
- Monitor the FreeIPA project’s official security announcements page and mailing lists for a patch release.
- When a patched version is published, upgrade all FreeIPA servers promptly. Test in a staging environment first.
- Until a patch exists, consider whether the migration service is required. If not, disabling it entirely is the strongest mitigation.
Long-Term Hardening
- Place FreeIPA servers behind a proper boundary firewall; never expose management endpoints directly to the internet.
- Enforce mutual TLS (mTLS) or VPN requirements for access to administrative and migration endpoints.
- Implement a zero-trust network architecture where authentication services are only reachable from authenticated client networks.
- Regularly review FreeIPA deployment guidelines and apply vendor security hardening checklist.
- Maintain up-to-date backups and documented disaster recovery procedures to minimize downtime in case of a successful DoS attack.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-73197
- FreeIPA Project Security Page: https://www.freeipa.org/page/Security — Subscription to advisories recommended for patch notification.
- MITRE ATT&CK Technique: https://attack.mitre.org/techniques/T1190/ — Exploit Public-Facing Application.
- CWE-770 Resource Allocation Reference: https://cwe.mitre.org/data/definitions/770.html
- CISA KEV Catalog: Not applicable — CVE-2026-73197 is not listed in the CISA Known Exploited Vulnerabilities catalog. No exploit-in-the-wild evidence is available at the time of writing.
Report Closure Statement: This report is based on the vulnerability description provided and publicly available technical context. No specific threat actor campaigns are associated with this CVE at present. As additional patch or exploit information becomes available, this report should be updated accordingly.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.