pwn 0.5.792 → 0.5.793

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d9faf1e37903f9f0bf4c98030427b5f62fae266b50e02a85bf70f7732515abf
4
- data.tar.gz: cffff5cf764a901a9ebabe6c840daeaa64f52e286185d48856c0166ea268457f
3
+ metadata.gz: ad2a2e3fe7efc1387b2e1e74af3eb75a7f843fa48f6256e86670ffde794f091d
4
+ data.tar.gz: b48527c558f948fc39b09c8ac03a6fe90ef4be80ea042dcbe77c4f33cce00a08
5
5
  SHA512:
6
- metadata.gz: a08a110a62e07958a85431b858c4590c41af6d49c42bd3f70dbbacd37231bb4eee363a1279139dfb7b7679f676bde6062ce99ccca19f02f715075510aa8896f3
7
- data.tar.gz: 9293669aaef1c48e4d48cf67fccf5f237b4517ca2da3e93956053510be5887b5b91ddfed01fa271ceb221db45668a1c59d5c4ea52e6f0a73969ba8cc34da3f3d
6
+ metadata.gz: '08697b10f3966be151cca3d55d72f0c852256989bcbeb7ee3887a160d231e7463ea140e0498562783a052f05a802e35f028362e918fe2b50220a0f9f2d55e9de'
7
+ data.tar.gz: 0a88ece3b27161c451ddae0e20e9d6edf90328f66f0027abce7bc502117b7f999aa1b5361e423b9630c950d463ed4aa5bb4283225c9e6748256eaae6a9a58c51
data/Gemfile CHANGED
@@ -52,7 +52,7 @@ gem 'mail', '2.9.1'
52
52
  gem 'mcp', '1.9.0'
53
53
  gem 'meshtastic', '0.0.192'
54
54
  gem 'metasm', '1.0.6'
55
- gem 'mongo', '2.26.0'
55
+ gem 'mongo', '2.26.1'
56
56
  gem 'msfrpc-client', '1.1.2'
57
57
  gem 'netaddr', '2.0.6'
58
58
  gem 'net-ldap', '0.21.0'
@@ -482,11 +482,28 @@ module PWN
482
482
  options['rsa_mgf1_md'] = @opts.fetch(:mgf1_hash, digest)
483
483
  options['rsa_oaep_label'] = @opts[:label].b.unpack1('H*') if @opts[:label]
484
484
  end
485
- dummy.decrypt(wrapped, options)
485
+ message = dummy.decrypt(wrapped, options)
486
+ # OpenSSL 3 may return random bytes instead of raising when PKCS1
487
+ # padding is invalid. Never treat that as plaintext.
488
+ if padding == :pkcs1
489
+ verified = pkcs1_unpad(padded)
490
+ raise ResponseError, 'RSA decryption failed' unless verified == message
491
+ end
492
+ message
486
493
  rescue OpenSSL::OpenSSLError
487
494
  raise ResponseError, 'RSA decryption failed', cause: nil
488
495
  end
489
496
 
497
+ def pkcs1_unpad(padded)
498
+ bytes = padded.b.bytes
499
+ tail = bytes[2..] || []
500
+ found = tail.index(0)
501
+ separator = found.nil? ? nil : found + 2
502
+ raise ResponseError, 'RSA decryption failed' unless bytes[0].zero? && bytes[1] == 2 && separator && separator >= 10
503
+
504
+ padded.b.byteslice(separator + 1, padded.bytesize - separator - 1)
505
+ end
506
+
490
507
  def calculate_secret(identifier, peer)
491
508
  selected = slot(identifier)
492
509
  public_part = parse_key(peer)
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.5.792'
4
+ VERSION = '0.5.793'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.792
4
+ version: 0.5.793
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -547,14 +547,14 @@ dependencies:
547
547
  requirements:
548
548
  - - '='
549
549
  - !ruby/object:Gem::Version
550
- version: 2.26.0
550
+ version: 2.26.1
551
551
  type: :runtime
552
552
  prerelease: false
553
553
  version_requirements: !ruby/object:Gem::Requirement
554
554
  requirements:
555
555
  - - '='
556
556
  - !ruby/object:Gem::Version
557
- version: 2.26.0
557
+ version: 2.26.1
558
558
  - !ruby/object:Gem::Dependency
559
559
  name: msfrpc-client
560
560
  requirement: !ruby/object:Gem::Requirement