CVE-2021-39303 Overview
CVE-2021-39303 is a Server-Side Request Forgery (SSRF) vulnerability affecting Jamf Pro, a widely-used enterprise Apple device management solution. The vulnerability exists in the Jamf Pro server component in versions prior to 10.32.0, tracked internally by Jamf as PI-006352. SSRF vulnerabilities allow attackers to induce the server-side application to make HTTP requests to an arbitrary domain of the attacker's choosing, potentially exposing internal services, cloud metadata endpoints, and sensitive network resources.
Critical Impact
This SSRF vulnerability allows unauthenticated remote attackers to make arbitrary requests from the Jamf Pro server, potentially accessing internal network resources, cloud instance metadata, and sensitive configuration data without requiring any user interaction.
Affected Products
- Jamf Pro versions prior to 10.32.0
- Enterprise deployments using Jamf Pro for macOS, iOS, iPadOS, and tvOS device management
- Cloud-hosted and on-premises Jamf Pro server installations
Discovery Timeline
- 2021-11-12 - CVE-2021-39303 published to NVD
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2021-39303
Vulnerability Analysis
This SSRF vulnerability (CWE-918) in Jamf Pro allows an attacker to manipulate the server into making unauthorized requests to internal or external resources. The vulnerability is accessible over the network without requiring authentication or user interaction, making it particularly dangerous in environments where Jamf Pro servers have access to sensitive internal infrastructure.
SSRF vulnerabilities in device management platforms like Jamf Pro are especially concerning because these servers typically have privileged network access to manage fleet devices, communicate with Apple services, and access internal enterprise systems. An attacker exploiting this vulnerability could potentially:
- Access cloud provider metadata services (AWS IMDSv1, Azure IMDS, GCP metadata)
- Probe internal network services not exposed to the internet
- Exfiltrate sensitive configuration data from internal systems
- Pivot to attack other internal services using the Jamf Pro server as a proxy
Root Cause
The vulnerability stems from insufficient validation of user-supplied input that is used to construct server-side HTTP requests. The Jamf Pro server fails to properly sanitize or restrict URLs before making outbound requests, allowing attackers to specify arbitrary destination addresses including internal IP ranges and localhost.
Attack Vector
The attack leverages the network-accessible Jamf Pro server interface. An unauthenticated attacker can craft malicious requests that cause the server to initiate connections to attacker-specified destinations. This can be used to bypass network segmentation, access internal resources, or retrieve sensitive data from cloud metadata endpoints.
The vulnerability is exploited by sending specially crafted requests to the Jamf Pro server that include URLs pointing to internal resources. The server processes these requests without adequate validation, effectively acting as a proxy for the attacker. Detailed technical analysis is available in the Assetnote Blog Post.
Detection Methods for CVE-2021-39303
Indicators of Compromise
- Unusual outbound requests from the Jamf Pro server to internal IP addresses (e.g., 169.254.169.254, 127.0.0.1, 10.x.x.x, 192.168.x.x)
- HTTP requests to cloud metadata endpoints originating from the Jamf Pro server
- Unexpected network connections from the Jamf Pro server to internal services it does not normally communicate with
- Log entries showing requests to localhost or private IP ranges in server access logs
Detection Strategies
- Monitor Jamf Pro server network traffic for connections to cloud metadata services (AWS 169.254.169.254, Azure 169.254.169.254, GCP metadata.google.internal)
- Implement network-level detection rules for SSRF patterns such as requests containing internal IP addresses or localhost references
- Review Jamf Pro server logs for suspicious request patterns targeting internal resources
- Deploy web application firewall (WAF) rules to detect and block SSRF payload patterns
Monitoring Recommendations
- Enable verbose logging on the Jamf Pro server and forward logs to a SIEM for analysis
- Set up alerts for outbound connections from the Jamf Pro server to non-standard destinations
- Monitor for any unauthorized data exfiltration attempts from internal network segments
- Implement network segmentation monitoring to detect lateral movement attempts
How to Mitigate CVE-2021-39303
Immediate Actions Required
- Upgrade Jamf Pro to version 10.32.0 or later immediately
- Review Jamf Pro server logs for any signs of exploitation prior to patching
- Implement network segmentation to limit the Jamf Pro server's access to internal resources
- Consider blocking outbound access to cloud metadata endpoints from the Jamf Pro server at the network level
Patch Information
Jamf has addressed this vulnerability in Jamf Pro version 10.32.0. Organizations should upgrade to this version or later to remediate the SSRF vulnerability. Detailed patch information is available in the Jamf Pro Resolved Issues Documentation and the Jamf Community Update. Additional release notes can be found at the Jamf Pro Release Notes Resource.
Workarounds
- Implement strict network egress filtering on the Jamf Pro server to only allow connections to known, required destinations
- Block access to cloud metadata endpoints (169.254.169.254) from the Jamf Pro server using firewall rules
- Deploy a web application firewall (WAF) with SSRF detection capabilities in front of the Jamf Pro server
- Restrict network access to the Jamf Pro administrative interface to trusted IP ranges only
# Example iptables rules to block SSRF to common internal targets
# Block access to cloud metadata endpoint
iptables -A OUTPUT -d 169.254.169.254 -j DROP
# Block access to localhost from server-initiated requests
iptables -A OUTPUT -d 127.0.0.0/8 -j DROP
# Block access to private IP ranges (adjust based on legitimate needs)
iptables -A OUTPUT -d 10.0.0.0/8 -j DROP
iptables -A OUTPUT -d 172.16.0.0/12 -j DROP
iptables -A OUTPUT -d 192.168.0.0/16 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


