From c047d3a9220a8d6fca0ec4969c4306aab15020e4 Mon Sep 17 00:00:00 2001 From: Spencer McIntyre Date: Wed, 8 Jul 2026 14:51:38 -0400 Subject: [PATCH 1/2] Handle missing hresult values --- lib/msf/core/exploit/remote/ms_icpr.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/msf/core/exploit/remote/ms_icpr.rb b/lib/msf/core/exploit/remote/ms_icpr.rb index 62b09e9bb1326..eb7ea46ad1b93 100644 --- a/lib/msf/core/exploit/remote/ms_icpr.rb +++ b/lib/msf/core/exploit/remote/ms_icpr.rb @@ -126,7 +126,13 @@ def do_request_cert(icpr, opts, csr, attributes) when ::WindowsError::HResult::CERTSRV_E_UNSUPPORTED_CERT_TYPE raise MsIcprNotFoundError.new(hresult.description) else - raise MsIcprUnknownError.new(hresult.description) + if response[:disposition] + message = "Unknown HRESULT 0x#{response[:disposition].to_s(16).rjust(8, '0')}" + else + message = "Unknown error, no disposition code" + end + + raise MsIcprUnknownError.new(message) end end From 6f623d1217b370fe4d1c5d66563e27e16957a666 Mon Sep 17 00:00:00 2001 From: Spencer McIntyre Date: Wed, 8 Jul 2026 14:56:18 -0400 Subject: [PATCH 2/2] Temporarily bump windows_version --- Gemfile | 2 ++ Gemfile.lock | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 0a37e48d0a621..9a89dd5351b6f 100644 --- a/Gemfile +++ b/Gemfile @@ -56,3 +56,5 @@ group :test do # stub and set expectations on HTTP requests gem 'webmock', '~> 3.18' end + +gem 'windows_error', git: 'https://github.com/zeroSteiner/windows_error', branch: 'feat/win32-hresults' diff --git a/Gemfile.lock b/Gemfile.lock index 35074de0b00cb..8d07754b19ac8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,6 +12,13 @@ GIT with_env (= 1.1.0) xml-simple (~> 1.1.9) +GIT + remote: https://github.com/zeroSteiner/windows_error + revision: 214a57467d90d364dca2adafaad6f2ada7be52b6 + branch: feat/win32-hresults + specs: + windows_error (0.1.6) + PATH remote: . specs: @@ -682,7 +689,6 @@ GEM websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) win32api (0.1.0) - windows_error (0.1.5) winrm (2.3.9) builder (>= 2.1.2) erubi (~> 1.8) @@ -727,6 +733,7 @@ DEPENDENCIES test-prof timecop webmock (~> 3.18) + windows_error! yard BUNDLED WITH