CVE-2020-9802
Apple iOS, iPadOS, tvOS, watchOS, Safari, iTunes for Windows, iCloud for Windows, iCloud for Windows Web Content Vulnerability
Record summary
CVE-2020-9802 has a selected CVSS score of 8.8 (high); EIP currently links 2 repository PoCs.
Description
A logic issue was addressed with improved restrictions. This issue is fixed in iOS 13.5 and iPadOS 13.5, tvOS 13.4.5, watchOS 6.2.5, Safari 13.1.1, iTunes 12.10.7 for Windows, iCloud for Windows 11.2, iCloud for Windows 7.19. Processing maliciously crafted web content may lead to arbitrary code execution.
Exploitation context
Known exploitation
- VulnCheck KEV
- Listed · May 6, 2024 · VulnCheck
- Reported exploitation
- Observed · VulnCheck
Available material
- Repository PoCs
- 2
CISA SSVC decision
CISA Coordinator · SSVC 2.0.3 · Evaluated Apr 23, 2025 · Source: CVE List
Affected products and versions
8| Product | Source | Version range | Status |
|---|---|---|---|
SafariBrowse Apple / Safari | CVE List | Before Safari 13.1.1 | affected |
iCloud for WindowsBrowse Apple / iCloud for Windows | CVE List | Before iCloud for Windows 11.2 | affected |
iCloud for Windows (Legacy)Browse Apple / iCloud for Windows (Legacy) | CVE List | Before iCloud for Windows 7.19 | affected |
| CVE List | Before iOS 13.5 and iPadOS 13.5 | affected | |
iTunes for WindowsBrowse Apple / iTunes for Windows | CVE List | Before iTunes 12.10.7 for Windows | affected |
icloudBrowse Apple / icloud | VulnCheck | Version data not supplied | |
| CVE List | Before tvOS 13.4.5 | affected | |
watchOSBrowse Apple / watchOS | CVE List | Before watchOS 6.2.5 | affected |
Proofs of concept
2Repository PoCs
GitHubBilly-Ellis/jitsploitationRepository PoCby Billy-EllisStars: 13Exploit2 files
Analysis
Technical assessment
The artifact is a complete, browser-based exploit for CVE-2020-9802 targeting WebKit on iOS 12.5.7 (iPod7,1). It triggers a JIT compiler bug to achieve arbitrary read/write, bypasses ASLR, and hijacks a vtable to launch the calculator app via a ROP chain.
Backdoor review
No backdoor observed in reviewed code
The artifact is a proof-of-concept exploit for CVE-2020-9802, a WebKit JIT bug. It uses the vulnerability to achieve arbitrary read/write and then hijacks a vtable to launch the iOS Calculator app via a ROP/JOP chain. All behavior is consistent with a normal browser exploit demonstration: triggering the bug, building memory primitives, bypassing ASLR, and executing a hardcoded payload (launching Calculator). No concealed backdoor, credential theft, persistence, or unrelated remote access was observed.
Classification basis and observed behavior
Classification basis
The code actively exploits CVE-2020-9802 to corrupt memory, gain arbitrary read/write, bypass ASLR, hijack control flow, and execute a payload (launching the calculator). It is a full end-to-end exploit, not merely a scanner or writeup.
exploit.html:1-442README.md:2Requirements
- Victim must visit a malicious web page and click the 'do exploit' button.
exploit.html:431 - Target device must be iPod7,1 running iOS 12.5.7 with hard-coded offsets and no PAC.
exploit.html:11-12 - WebContent process must have the com.apple.springboard.launchapplications entitlement (author notes they cheated by adding it).
exploit.html:395-397
Observed behavior
- Triggers CVE-2020-9802 via the hax() function to corrupt a JSArray length, enabling out-of-bounds read/write.
exploit.html:188-205 - Establishes addrof and fakeobj primitives to leak object addresses and create fake JavaScript objects.
exploit.html:237-245 - Constructs a fake JSArray with a controlled butterfly pointer to gain arbitrary read/write via read64 and write64 functions.
exploit.html:264-342 - Leaks the address of Math.exp to calculate the ASLR slide and resolve the base address of JavaScriptCore.
exploit.html:346-360 - Overwrites the vtable of a WebCore::HTMLDivElement object with a ROP gadget to redirect execution and launch the calculator app.
exploit.html:366-424
Behaviors behind the backdoor verdict
Observables
- Exploit Trigger
- Payload withheldThe core vulnerability is triggered to corrupt array length and achieve out-of-bounds read/write.
exploit.html:188-205 - Arbitrary Read Write
- Payload withheldStandard exploit primitives to read and write arbitrary memory addresses.
exploit.html:237-245exploit.html:311-342 - Code Execution
- Payload withheldThe exploit overwrites a vtable pointer and uses gadgets to call SBSLaunchApplicationWithIdentifier to launch the Calculator app.
exploit.html:363-424 - Payload
- Payload withheldThe final payload is a hardcoded call to launch the Calculator, a common benign demonstration target.
exploit.html:391-412
What the analysis did not establish
- The exploit is hard-coded for a specific device and iOS version (iPod7,1 iOS 12.5.7) and will not work on other targets without modification.
- The author states they manually added the com.apple.springboard.launchapplications entitlement to the WebContent process, which is not present by default.
- The analysis is based solely on static review of the provided source code; the code was not executed, and its reliability or effectiveness is not verified.
- Only the two text files (README.md and exploit.html) were provided; no binary or compiled artifacts were included.
- The exploit uses hardcoded offsets for a specific device/iOS version; behavior on other targets is not assessed.
This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.