Some notes of Microsoft Exchange Deserialization RCE (CVE-2021–42321)

  • strictMode = false
  • allowList = System.DelegateSerializationHolder
  • allowedGenerics = null
  • Nếu như strictMode = false, class hiện tại không nằm trong allow list, và class này nằm trong blacklist => throw InvalidOperationException().
  • Mặc dù đoạn code này nằm trong try catch statement, nhưng phần catch nó không có catch InvalidOperationException mà chỉ catch BlockedDeserializationException.
  • Do vậy, nếu nhánh (1) throw InvalidOperationException thì cũng coi như việc xử lý sẽ kết thúc, và data sẽ không được deserialize nữa
  • Step 1: Tạo UserConfiguration có chứa BinaryData = GadgetChain
  • Step 2: Gọi tới GetClientAccessToken để trigger Deserialization
  • payload gen được sẽ rất dài
  • Microsoft Exchange 2019 CU10, 11
  • Microsoft Exchange 2016 CU21, 22

--

--

--

asdasd asdasdasd asdasdasd

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jang

Jang

asdasd asdasdasd asdasdasd

More from Medium

PwnKit: Local Privilege Escalation Vulnerability Discovered in polkit’s pkexec (CVE-2021–4034)

Introduction to the Leo programming language

Network Pre-Requisites for MGN Agent Installation

Popcorn Bug Bounty with Immunefi