Skip to content

Commit 0a923a6

Browse files
committed
reword the language around our usage of CVE-2025-53770 to make it clear that this module is leveraging the authentication bypass for both CVE-2025-49706 and CVE-2025-53771, and the unsafe deserialization for CVE-2025-49704.
1 parent 3237151 commit 0a923a6

File tree

2 files changed

+31
-19
lines changed

2 files changed

+31
-19
lines changed

documentation/modules/exploit/windows/http/sharepoint_toolpane_rce.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
## Vulnerable Application
2-
This module exploits the authentication bypass vulnerability `CVE-2025-53771` (a patch bypass of `CVE-2025-49706`),
3-
and an unsafe deserialization vulnerability `CVE-2025-53770` (a patch bypass of `CVE-2025-49704`), to achieve
4-
unauthenticated RCE against a vulnerable Microsoft SharePoint Server.
2+
This module exploits the authentication bypass vulnerabilities `CVE-2025-49706` and `CVE-2025-53771`, and an unsafe
3+
deserialization vulnerability `CVE-2025-49704`, to achieve unauthenticated RCE against a vulnerable Microsoft
4+
SharePoint Server. The vulnerability `CVE-2025-53770` was disclosed as being a patch bypass of `CVE-2025-49704`,
5+
and as described by the finders, `CVE-2025-53770` targets a different endpoint within the `/_vti_bin/` URI path.
6+
As this exploit module does not target the endpoint associated with `CVE-2025-53770` (per the original finders),
7+
we believe this module is best described as exploiting `CVE-2025-49704` alone (and not `CVE-2025-53770`).
58

69
`CVE-2025-49706` is an authentication bypass affecting Microsoft SharePoint Server, allowing a remote unauthenticated
710
attacker to reach the ToolPane page, located at the `/_layouts/15/ToolPane.aspx` URI. The auth bypass works if an
@@ -20,11 +23,11 @@ the ToolPane page.
2023
`LosFormatter` and `ObjectDataProvider` in the `diffgr:diffgram` XML document, allowing us to kick off a second
2124
stage deserialization gadget (which will be a `TypeConfuseDelegate` + `LosFormatter` gadget chain).
2225

23-
`CVE-2025-53770` is a patch bypass of `CVE-2025-49704`. The patch for `CVE-2025-49704` did not apply correctly to a
24-
SharePoint site that had not also manually run a configuration upgrade. While the patch for `CVE-2025-49704` did not
25-
address the root cause, and instead marked the `Microsoft.PerformancePoint.Scorecards.Client` assembly as unsafe, the
26-
patch for `CVE-2025-53770` instead correctly addresses the root cause of `CVE-2025-49704` while also not relying
27-
on a manual configuration update to be performed.
26+
The July 8, 2025, patch for `CVE-2025-49704` did not apply correctly to a SharePoint site that had not also manually run
27+
a SharePoint configuration update. The patch for `CVE-2025-49704` did not address the root cause, and instead marked the
28+
`Microsoft.PerformancePoint.Scorecards.Client` assembly as unsafe. The July 19, 2025, patch for `CVE-2025-53770`
29+
addresses the root cause of `CVE-2025-49704` and does not rely on a manual configuration update to be performed in
30+
order to be affective.
2831

2932
## Testing
3033
This exploit module has been successfully tested against the following versions:

modules/exploits/windows/http/sharepoint_toolpane_rce.rb

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,49 @@ def initialize(info = {})
1515
info,
1616
'Name' => 'Microsoft SharePoint Server ToolPane Unauthenticated Remote Code Execution (aka ToolShell)',
1717
'Description' => %q{
18-
This module exploits the authentication bypass vulnerability CVE-2025-53771 (a patch bypass of CVE-2025-49706),
19-
and an unsafe deserialization vulnerability CVE-2025-53770 (a patch bypass of CVE-2025-49704), to achieve
20-
unauthenticated RCE against a vulnerable Microsoft SharePoint Server.
18+
This module exploits the authentication bypass vulnerabilities CVE-2025-49706 and CVE-2025-53771, and an unsafe
19+
deserialization vulnerability CVE-2025-49704, to achieve unauthenticated RCE against a vulnerable Microsoft
20+
SharePoint Server. The vulnerability CVE-2025-53770 was disclosed as being a patch bypass of CVE-2025-49704,
21+
and as described by the finders, CVE-2025-53770 targets a different endpoint within the /_vti_bin/ URI path.
22+
As this exploit module does not target the endpoint associated with CVE-2025-53770 (per the original finders),
23+
we believe this module is best described as exploiting CVE-2025-49704 and not CVE-2025-53770.
2124
},
2225
'License' => MSF_LICENSE,
2326
'Author' => [
2427
# Discovered CVE-2025-49704 and CVE-2025-49706, demoed at Pwn2Own Berlin 2025.
28+
# Credited by Microsoft as also discovering CVE-2025-53770 and CVE-2025-53771.
2529
'Viettel Cyber Security',
26-
# Metasploit module, based on the public PoC of the zero-day exploit for CVE-2025-53770 and CVE-2025-53771.
30+
# Metasploit module, based on the public PoC of the exploit for CVE-2025-49706 and CVE-2025-49704.
2731
'sfewer-r7'
28-
# NOTE: The author attribution for CVE-2025-53770 and CVE-2025-53771 is unclear.
2932
],
3033
'References' => [
3134
# Microsoft SharePoint DataSetSurrogateSelector Deserialization of Untrusted Data Remote Code Execution Vulnerability.
3235
['CVE', '2025-49704'],
3336
# Microsoft SharePoint ToolPane Authentication Bypass Vulnerability.
3437
['CVE', '2025-49706'],
35-
# Patch bypass for CVE-2025-49704, exploited in-the-wild as a zero-day.
38+
# Patch bypass for CVE-2025-49704, by targeting a different endpoint within the /_vti_bin/ path.
3639
['CVE', '2025-53770'],
37-
# Patch bypass for CVE-2025-49706, exploited in-the-wild as a zero-day.
40+
# Patch bypass for CVE-2025-49706.
3841
['CVE', '2025-53771'],
3942
# Technical analysis of CVE-2025-49704 and CVE-2025-49706 by the original finder, Dinh Ho Anh Khoa (Viettel Cyber Security).
4043
['URL', 'https://blog.viettelcybersecurity.com/sharepoint-toolshell/'],
41-
# LeakIX blog which captured the malicious request for the in-the-wild exploit.
44+
# LeakIX blog which captured the malicious request for the in-the-wild exploit for CVE-2025-49706, CVE-2025-53771, and CVE-2025-49704.
4245
['URL', 'https://blog.leakix.net/2025/07/using-their-own-weapons-for-defense-a-sharepoint-story/'],
4346
# Technical analysis of CVE-2025-49704, CVE-2025-49706, CVE-2025-53770 and CVE-2025-53771 by Kaspersky.
4447
['URL', 'https://securelist.com/toolshell-explained/'],
4548
# ZDI advisories for CVE-2025-49704 and CVE-2025-49706, discovered by Viettel Cyber Security.
4649
['URL', 'https://www.zerodayinitiative.com/advisories/ZDI-25-580/'],
4750
['URL', 'https://www.zerodayinitiative.com/advisories/ZDI-25-581/'],
48-
# Microsoft advisories for CVE-2025-53770 and CVE-2025-53771, caught in-the-wild.
51+
# Microsoft advisories for CVE-2025-49704 and CVE-2025-49706.
52+
['URL', 'https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-49704'],
53+
['URL', 'https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-49706'],
54+
# Microsoft advisories for CVE-2025-53770 and CVE-2025-53771.
4955
['URL', 'https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53770'],
5056
['URL', 'https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53771'],
5157
# Microsoft Guidance.
58+
['URL', 'https://www.microsoft.com/en-us/security/blog/2025/07/22/disrupting-active-exploitation-of-on-premises-sharepoint-vulnerabilities/'],
5259
['URL', 'https://msrc.microsoft.com/blog/2025/07/customer-guidance-for-sharepoint-vulnerability-cve-2025-53770/'],
53-
# The zero-day exploit for CVE-2025-53770 and CVE-2025-53771, published July 21, 2025.
60+
# The zero-day exploit for CVE-2025-49704, CVE-2025-49706, published July 21, 2025.
5461
['URL', 'https://gist.github.com/gboddin/6374c04f84b58cef050f5f4ecf43d501'],
5562
# Markus Wulftange (CODE WHITE GmbH) reproduced CVE-2025-49704 and CVE-2025-49706, circa July 14, 2025.
5663
['URL', 'https://x.com/codewhitesec/status/1944743478350557232'],
@@ -59,7 +66,7 @@ def initialize(info = {})
5966
# Prior work from Steven Seeley on a similar DataSet gadget chain for SharePoint.
6067
['URL', 'https://srcincite.io/blog/2020/07/20/sharepoint-and-pwn-remote-code-execution-against-sharepoint-server-abusing-dataset.html']
6168
],
62-
'DisclosureDate' => '2025-07-19', # Disclosure date for CVE-2025-53770 and CVE-2025-53771.
69+
'DisclosureDate' => '2025-07-08', # Disclosure date for CVE-2025-49704 and CVE-2025-49706.
6370
'Platform' => ['win'],
6471
'Arch' => [ARCH_CMD],
6572
'Privileged' => false, # Executes as the SharePoint site user.
@@ -112,6 +119,8 @@ def check
112119
# compare the target version against the RTM version (i.e. the first version of an edition) and the version *before*
113120
# the patch for CVE-2025-53770 and CVE-2025-53771 (which supersedes patches for CVE-2025-49704 and CVE-2025-49706
114121
# from July 2025).
122+
# Note: A SharePoint server that has the patch for CVE-2025-49704 applied, may still be vulnerable if a SharePoint
123+
# configuration update has not also manually occurred.
115124
# https://learn.microsoft.com/en-us/sharepoint/product-servicing-policy/updated-product-servicing-policy-for-sharepoint-2019
116125
# https://learn.microsoft.com/en-us/officeupdates/sharepoint-updates
117126

0 commit comments

Comments
 (0)