pwn 0.5.549 → 0.5.551

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: 4a49d7954811a03a2ce8a53a780306e1c9ba64274b7adc9431b1ded146f57142
4
- data.tar.gz: 4a8586c914e576b038b4dc29cdd903d8d2b5f6529ff9edd28aa3b19e39e6cd14
3
+ metadata.gz: 0e0aad93e7d83b22a576c3ee41b5d804daf4fdfd21ac0711ac502b8703d18891
4
+ data.tar.gz: c2fc43c97a06e96a908899d28092a73f4ed39c0f73fc01d5f5525ecb4d930dc0
5
5
  SHA512:
6
- metadata.gz: 341309e87c6e5a865e29e245b961bb6a59568ef0eaccb9d253a30a5627f7187aef65a00040409cd12a8287d5054b4aaec6e1e17c8f70ba2dcfd52e09c2c06f92
7
- data.tar.gz: 5fdeed08de40e3e3fd9dd43c1d8bbc7e56d1c06ad299ab646d370a9f7f89dd478f46e2cfb1e16b4357d7c71e0bbe7a0e10b64e94cc4cbcb51e5d63d1b2c0f41c
6
+ metadata.gz: b7d2eda4eb05ecccdd31f7725d3c63da7e9190ec36d4559f959d538f929704305b7b9143e88aff63c68a4593a60c0ef9e5f5df395255540e501c6495623e3d42
7
+ data.tar.gz: 0bc1a8ba361fe00580d0bbe9405ee97387bb6ac9edf118fedb3206a7bd776d3a438722dde482085013e1631888767c74680825b5c342149d086ff36adde61212
data/Gemfile CHANGED
@@ -11,7 +11,7 @@ gemspec
11
11
  # In some circumstances custom flags are passed to gems in order
12
12
  # to build appropriately. Defer to ./reinstall_pwn_gemset.sh
13
13
  # to review these custom flags (e.g. pg, serialport, etc).
14
- gem 'activesupport', '<8.1.2'
14
+ gem 'activesupport', '<8.1.3'
15
15
  gem 'anemone', '0.7.2'
16
16
  gem 'authy', '3.0.1'
17
17
  gem 'aws-sdk', '3.3.0'
@@ -20,18 +20,18 @@ gem 'base32', '0.3.4'
20
20
  gem 'bitcoin-ruby', '0.0.20'
21
21
  gem 'brakeman', '8.0.4'
22
22
  gem 'bson', '5.2.0'
23
- gem 'bundler', '>=4.0.7'
23
+ gem 'bundler', '>=4.0.9'
24
24
  gem 'bundler-audit', '>=0.9.3'
25
25
  gem 'bunny', '2.24.0'
26
26
  gem 'colorize', '1.1.0'
27
27
  gem 'credit_card_validations', '8.0.0'
28
- gem 'curses', '1.5.3'
28
+ gem 'curses', '1.6.0'
29
29
  gem 'diffy', '3.4.4'
30
30
  gem 'eventmachine', '1.2.7'
31
31
  gem 'executable-hooks', '1.7.1'
32
- gem 'faker', '3.6.0'
32
+ gem 'faker', '3.6.1'
33
33
  gem 'faye-websocket', '0.12.0'
34
- gem 'ffi', '1.17.3'
34
+ gem 'ffi', '1.17.4'
35
35
  # gem 'fftw3', '0.3'
36
36
  gem 'gdb', '1.0.0'
37
37
  gem 'gem-wrappers', '1.4.0'
@@ -49,8 +49,8 @@ gem 'jwt', '3.1.2'
49
49
  gem 'libusb', '0.7.2'
50
50
  gem 'luhn', '3.0.0'
51
51
  gem 'mail', '2.9.0'
52
- gem 'mcp', '0.7.1'
53
- gem 'meshtastic', '0.0.156'
52
+ gem 'mcp', '0.9.1'
53
+ gem 'meshtastic', '0.0.158'
54
54
  gem 'metasm', '1.0.5'
55
55
  gem 'mongo', '2.23.0'
56
56
  gem 'msfrpc-client', '1.1.2'
@@ -59,7 +59,7 @@ gem 'net-ldap', '0.20.0'
59
59
  gem 'net-openvpn', '0.8.7'
60
60
  gem 'net-smtp', '0.5.1'
61
61
  gem 'nexpose', '7.3.0'
62
- gem 'nokogiri', '1.19.1'
62
+ gem 'nokogiri', '1.19.2'
63
63
  gem 'nokogiri-diff', '0.3.0'
64
64
  gem 'oily_png', '1.2.1'
65
65
  gem 'open3', '0.2.1'
@@ -81,7 +81,7 @@ gem 'rmagick', '6.2.0'
81
81
  gem 'rqrcode', '3.2.0'
82
82
  gem 'rspec', '3.13.2'
83
83
  gem 'rtesseract', '3.1.4'
84
- gem 'rubocop', '1.85.0'
84
+ gem 'rubocop', '1.86.0'
85
85
  gem 'rubocop-rake', '0.7.1'
86
86
  gem 'rubocop-rspec', '3.9.0'
87
87
  gem 'ruby-audio', '1.6.1'
@@ -89,12 +89,12 @@ gem 'ruby-nmap', '1.0.3'
89
89
  gem 'ruby-saml', '1.18.1'
90
90
  gem 'rvm', '1.11.3.9'
91
91
  gem 'savon', '2.15.1'
92
- gem 'selenium-devtools', '0.143.0'
92
+ gem 'selenium-devtools', '0.145.0'
93
93
  gem 'selenium-webdriver', '4.41.0'
94
94
  gem 'slack-ruby-client', '3.1.0'
95
95
  gem 'socksify', '1.8.1'
96
96
  gem 'spreadsheet', '1.3.4'
97
- gem 'sqlite3', '2.9.1'
97
+ gem 'sqlite3', '2.9.2'
98
98
  gem 'thin', '2.0.1'
99
99
  gem 'tty-prompt', '0.23.1'
100
100
  gem 'tty-spinner', '0.9.3'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ cd /opt/pwn
37
37
  $ ./install.sh
38
38
  $ ./install.sh ruby-gem
39
39
  $ pwn
40
- pwn[v0.5.549]:001 >>> PWN.help
40
+ pwn[v0.5.551]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-4.0.1@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.5.549]:001 >>> PWN.help
55
+ pwn[v0.5.551]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
  If you're using a multi-user install of RVM do:
@@ -62,7 +62,7 @@ $ rvm use ruby-4.0.1@pwn
62
62
  $ rvmsudo gem uninstall --all --executables pwn
63
63
  $ rvmsudo gem install --verbose pwn
64
64
  $ pwn
65
- pwn[v0.5.549]:001 >>> PWN.help
65
+ pwn[v0.5.551]:001 >>> PWN.help
66
66
  ```
67
67
 
68
68
  PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
@@ -56,6 +56,12 @@ module PWN
56
56
 
57
57
  public_class_method def self.help
58
58
  puts "USAGE:
59
+ ai_analysis = PWN::AI::Agent::Assembly.analyze(
60
+ request: 'required - the assembly opcodes or instructions to be analyzed',
61
+ type: 'required - :opcodes_to_asm|:asm_to_opcodes - specify the type of analysis to perform',
62
+ arch: 'required - name of arch returned from `PWN::Plugins::Assembly.list_supported_archs` (e.g., :i386|:i686|:x86|:x64|:arm|:arm64, etc.)',
63
+ endian: 'required - the endianness of the assembly code (e.g., :little|:big)'
64
+ )
59
65
 
60
66
  #{self}.authors
61
67
  "
@@ -37,6 +37,9 @@ module PWN
37
37
 
38
38
  public_class_method def self.help
39
39
  puts "USAGE:
40
+ ai_analysis = PWN::AI::Agent::BTC.analyze(
41
+ request: 'required - latest block information retrieved from a bitcoin node via `PWN::Blockchain::BTC.get_latest_block`'
42
+ )
40
43
 
41
44
  #{self}.authors
42
45
  "
@@ -71,6 +71,9 @@ module PWN
71
71
 
72
72
  public_class_method def self.help
73
73
  puts "USAGE:
74
+ ai_analysis = PWN::AI::Agent::BurpSuite.analyze(
75
+ request: 'required HTTP request/response pair or WebSocket message as a string'
76
+ )
74
77
 
75
78
  #{self}.authors
76
79
  "
@@ -41,6 +41,10 @@ module PWN
41
41
 
42
42
  public_class_method def self.help
43
43
  puts "USAGE:
44
+ ai_analysis = PWN::AI::Agent::GQRX.analyze(
45
+ request: 'required - A string containing the signal data captured by GQRX that you want to analyze. This data should be in a format that can be interpreted by the AI for analysis, such as raw signal data, frequency information, or any relevant metadata associated with the capture.',
46
+ location: 'required - A string containing a city, state, country, or GPS coordinates where the signal data was captured. This information will be used to provide context for the analysis and to determine if the frequency is licensed or unlicensed based on FCC records.'
47
+ )
44
48
 
45
49
  #{self}.authors
46
50
  "
@@ -51,6 +51,10 @@ module PWN
51
51
 
52
52
  public_class_method def self.help
53
53
  puts "USAGE:
54
+ ai_analysis = PWN::AI::Agent::HackerOne.analyze(
55
+ request: 'required - dataset to analyze, such as bounty program details, scope details, or hacktivity details'
56
+ type: 'required - type of analysis to perform, such as :bounty_programs, :scope_details, or :hacktivity'
57
+ )
54
58
 
55
59
  #{self}.authors
56
60
  "
@@ -37,6 +37,9 @@ module PWN
37
37
 
38
38
  public_class_method def self.help
39
39
  puts "USAGE:
40
+ ai_analysis = PWN::AI::Agent::SAST.analyze(
41
+ request: 'required - A string containing the source code snippet to be analyzed for SAST antipatterns and vulnerabilities.'
42
+ )
40
43
 
41
44
  #{self}.authors
42
45
  "
@@ -41,6 +41,10 @@ module PWN
41
41
 
42
42
  public_class_method def self.help
43
43
  puts "USAGE:
44
+ ai_analysis = PWN::AI::Agent::TransparentBrowser.analyze(
45
+ request: 'required - current step in the JavaScript debugging session to analyze',
46
+ source_to_review: 'required - the block of JavaScript code in which the current step resides'
47
+ )
44
48
 
45
49
  #{self}.authors
46
50
  "
@@ -7,15 +7,34 @@ module PWN
7
7
  module VulnGen
8
8
  # Supported Method Parameters::
9
9
  # ai_analysis = PWN::AI::Agent::VulnGen.analyze(
10
- # request: 'required - high level description of vulnerability discovered (e.g. "Discovered a SQLi vulnerability in /login"'
10
+ # request: 'required - high level description of vulnerability discovered (e.g. "Discovered a SQLi vulnerability in /login"',
11
+ # markup_type: 'optional - specify the type of markup to generate :jira|:markdown|:html|:confluence|:xml (default: :jira)'
11
12
  # )
12
13
 
13
14
  public_class_method def self.analyze(opts = {})
14
15
  request = opts[:request]
15
16
  raise 'ERROR: request parameter is required' if request.nil? || request.empty?
16
17
 
17
- system_role_content = '
18
- _ALWAYS_ Generate markdown security findings for the message provided with the following content:
18
+ markup_type = opts[:markup_type] ||= :jira
19
+
20
+ markup = ''
21
+ case markup_type
22
+ when :jira
23
+ markup = 'Jira Wiki Markup'
24
+ when :markdown
25
+ markup = 'Markdown'
26
+ when :html
27
+ markup = 'HTML'
28
+ when :confluence
29
+ markup = 'Confluence Wiki Markup'
30
+ when :xml
31
+ markup = 'XML'
32
+ else
33
+ raise "ERROR: Unsupported markup_type '#{markup_type}'. Supported types are :jira, :markdown, :html, :confluence, :xml."
34
+ end
35
+
36
+ system_role_content = "
37
+ _ALWAYS_ Generate #{markup} security findings for the message provided with the following content:
19
38
 
20
39
  1. Detailed Finding Description: This should be a deep, detailed technical description that should include exploit proof-of-concepts when possible.
21
40
 
@@ -28,7 +47,7 @@ module PWN
28
47
  5. CWE Category, Brief CWE description, and CWE URI
29
48
 
30
49
  6. NIST 800-53 Security Control that is impacted by this vulnerability.
31
- '
50
+ "
32
51
 
33
52
  PWN::AI::Introspection.reflect_on(
34
53
  system_role_content: system_role_content,
@@ -51,6 +70,10 @@ module PWN
51
70
 
52
71
  public_class_method def self.help
53
72
  puts "USAGE:
73
+ ai_analysis = #{self}.analyze(
74
+ request: 'required - high level description of vulnerability discovered (e.g. \"Discovered a SQLi vulnerability in /login\"',
75
+ markup_type: 'optional - specify the type of markup to generate :jira|:markdown|:html|:confluence|:xml (default: :jira)'
76
+ )
54
77
 
55
78
  #{self}.authors
56
79
  "
@@ -3,6 +3,7 @@
3
3
  require 'base64'
4
4
  require 'json'
5
5
  require 'socket'
6
+ require 'tempfile'
6
7
  require 'uri'
7
8
  require 'yaml'
8
9
 
@@ -241,9 +242,11 @@ module PWN
241
242
  rescue StandardError => e
242
243
  puts "BurpSuite AI Introspection Thread Error: #{e}"
243
244
  puts e.backtrace
245
+ backtrace_file = Tempfile.new(["PWN_Plugins_BurpSuite_AI_Thread-#{type}", '.log'])
246
+ backtrace_file.write("#{e}\n#{e.backtrace.join("\n")}")
244
247
  raise e
245
248
  ensure
246
- puts "BurpSuite:#{type} AI Introspection Thread >>> Goodbye."
249
+ puts "BurpSuite: #{type} AI Introspection Thread >>> Goodbye."
247
250
  end
248
251
 
249
252
  burp_obj[:introspection_threads] = introspection_thread_arr.push(introspection_thread)
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.549'
4
+ VERSION = '0.5.551'
5
5
  end
@@ -22,7 +22,7 @@
22
22
  {"messages":[{"role":"user","content":"PWN::AI::Agent::TransparentBrowser.analyze Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TransparentBrowser.analyze`: Supported Method Parameters\n\nai_analysis = PWN::AI::Agent::TransparentBrowser.analyze(\n\nrequest: 'required - current step in the JavaScript debugging session to analyze',\nsource_to_review: 'required - the block of JavaScript code in which the current step resides'\n\n)\n"}]}
23
23
  {"messages":[{"role":"user","content":"PWN::AI::Agent::TransparentBrowser.authors Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TransparentBrowser.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
24
24
  {"messages":[{"role":"user","content":"PWN::AI::Agent::TransparentBrowser.help Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TransparentBrowser.help`: "}]}
25
- {"messages":[{"role":"user","content":"PWN::AI::Agent::VulnGen.analyze Usage"},{"role":"assistant","content":"`PWN::AI::Agent::VulnGen.analyze`: Supported Method Parameters\n\nai_analysis = PWN::AI::Agent::VulnGen.analyze(\n\nrequest: 'required - high level description of vulnerability discovered (e.g. \"Discovered a SQLi vulnerability in /login\"'\n\n)\n"}]}
25
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::VulnGen.analyze Usage"},{"role":"assistant","content":"`PWN::AI::Agent::VulnGen.analyze`: Supported Method Parameters\n\nai_analysis = PWN::AI::Agent::VulnGen.analyze(\n\nrequest: 'required - high level description of vulnerability discovered (e.g. \"Discovered a SQLi vulnerability in /login\"',\nmarkup_type: 'optional - specify the type of markup to generate :jira|:markdown|:html|:confluence|:xml (default: :jira)'\n\n)\n"}]}
26
26
  {"messages":[{"role":"user","content":"PWN::AI::Agent::VulnGen.authors Usage"},{"role":"assistant","content":"`PWN::AI::Agent::VulnGen.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
27
27
  {"messages":[{"role":"user","content":"PWN::AI::Agent::VulnGen.help Usage"},{"role":"assistant","content":"`PWN::AI::Agent::VulnGen.help`: "}]}
28
28
  {"messages":[{"role":"user","content":"PWN::AI::Grok.authors Usage"},{"role":"assistant","content":"`PWN::AI::Grok.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
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.549
4
+ version: 0.5.551
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "<"
17
17
  - !ruby/object:Gem::Version
18
- version: 8.1.2
18
+ version: 8.1.3
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "<"
24
24
  - !ruby/object:Gem::Version
25
- version: 8.1.2
25
+ version: 8.1.3
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: anemone
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -141,14 +141,14 @@ dependencies:
141
141
  requirements:
142
142
  - - ">="
143
143
  - !ruby/object:Gem::Version
144
- version: 4.0.7
144
+ version: 4.0.9
145
145
  type: :development
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="
150
150
  - !ruby/object:Gem::Version
151
- version: 4.0.7
151
+ version: 4.0.9
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: bundler-audit
154
154
  requirement: !ruby/object:Gem::Requirement
@@ -211,14 +211,14 @@ dependencies:
211
211
  requirements:
212
212
  - - '='
213
213
  - !ruby/object:Gem::Version
214
- version: 1.5.3
214
+ version: 1.6.0
215
215
  type: :runtime
216
216
  prerelease: false
217
217
  version_requirements: !ruby/object:Gem::Requirement
218
218
  requirements:
219
219
  - - '='
220
220
  - !ruby/object:Gem::Version
221
- version: 1.5.3
221
+ version: 1.6.0
222
222
  - !ruby/object:Gem::Dependency
223
223
  name: diffy
224
224
  requirement: !ruby/object:Gem::Requirement
@@ -267,14 +267,14 @@ dependencies:
267
267
  requirements:
268
268
  - - '='
269
269
  - !ruby/object:Gem::Version
270
- version: 3.6.0
270
+ version: 3.6.1
271
271
  type: :runtime
272
272
  prerelease: false
273
273
  version_requirements: !ruby/object:Gem::Requirement
274
274
  requirements:
275
275
  - - '='
276
276
  - !ruby/object:Gem::Version
277
- version: 3.6.0
277
+ version: 3.6.1
278
278
  - !ruby/object:Gem::Dependency
279
279
  name: faye-websocket
280
280
  requirement: !ruby/object:Gem::Requirement
@@ -295,14 +295,14 @@ dependencies:
295
295
  requirements:
296
296
  - - '='
297
297
  - !ruby/object:Gem::Version
298
- version: 1.17.3
298
+ version: 1.17.4
299
299
  type: :runtime
300
300
  prerelease: false
301
301
  version_requirements: !ruby/object:Gem::Requirement
302
302
  requirements:
303
303
  - - '='
304
304
  - !ruby/object:Gem::Version
305
- version: 1.17.3
305
+ version: 1.17.4
306
306
  - !ruby/object:Gem::Dependency
307
307
  name: gdb
308
308
  requirement: !ruby/object:Gem::Requirement
@@ -533,28 +533,28 @@ dependencies:
533
533
  requirements:
534
534
  - - '='
535
535
  - !ruby/object:Gem::Version
536
- version: 0.7.1
536
+ version: 0.9.1
537
537
  type: :runtime
538
538
  prerelease: false
539
539
  version_requirements: !ruby/object:Gem::Requirement
540
540
  requirements:
541
541
  - - '='
542
542
  - !ruby/object:Gem::Version
543
- version: 0.7.1
543
+ version: 0.9.1
544
544
  - !ruby/object:Gem::Dependency
545
545
  name: meshtastic
546
546
  requirement: !ruby/object:Gem::Requirement
547
547
  requirements:
548
548
  - - '='
549
549
  - !ruby/object:Gem::Version
550
- version: 0.0.156
550
+ version: 0.0.158
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: 0.0.156
557
+ version: 0.0.158
558
558
  - !ruby/object:Gem::Dependency
559
559
  name: metasm
560
560
  requirement: !ruby/object:Gem::Requirement
@@ -673,14 +673,14 @@ dependencies:
673
673
  requirements:
674
674
  - - '='
675
675
  - !ruby/object:Gem::Version
676
- version: 1.19.1
676
+ version: 1.19.2
677
677
  type: :runtime
678
678
  prerelease: false
679
679
  version_requirements: !ruby/object:Gem::Requirement
680
680
  requirements:
681
681
  - - '='
682
682
  - !ruby/object:Gem::Version
683
- version: 1.19.1
683
+ version: 1.19.2
684
684
  - !ruby/object:Gem::Dependency
685
685
  name: nokogiri-diff
686
686
  requirement: !ruby/object:Gem::Requirement
@@ -981,14 +981,14 @@ dependencies:
981
981
  requirements:
982
982
  - - '='
983
983
  - !ruby/object:Gem::Version
984
- version: 1.85.0
984
+ version: 1.86.0
985
985
  type: :runtime
986
986
  prerelease: false
987
987
  version_requirements: !ruby/object:Gem::Requirement
988
988
  requirements:
989
989
  - - '='
990
990
  - !ruby/object:Gem::Version
991
- version: 1.85.0
991
+ version: 1.86.0
992
992
  - !ruby/object:Gem::Dependency
993
993
  name: rubocop-rake
994
994
  requirement: !ruby/object:Gem::Requirement
@@ -1093,14 +1093,14 @@ dependencies:
1093
1093
  requirements:
1094
1094
  - - '='
1095
1095
  - !ruby/object:Gem::Version
1096
- version: 0.143.0
1096
+ version: 0.145.0
1097
1097
  type: :runtime
1098
1098
  prerelease: false
1099
1099
  version_requirements: !ruby/object:Gem::Requirement
1100
1100
  requirements:
1101
1101
  - - '='
1102
1102
  - !ruby/object:Gem::Version
1103
- version: 0.143.0
1103
+ version: 0.145.0
1104
1104
  - !ruby/object:Gem::Dependency
1105
1105
  name: selenium-webdriver
1106
1106
  requirement: !ruby/object:Gem::Requirement
@@ -1163,14 +1163,14 @@ dependencies:
1163
1163
  requirements:
1164
1164
  - - '='
1165
1165
  - !ruby/object:Gem::Version
1166
- version: 2.9.1
1166
+ version: 2.9.2
1167
1167
  type: :runtime
1168
1168
  prerelease: false
1169
1169
  version_requirements: !ruby/object:Gem::Requirement
1170
1170
  requirements:
1171
1171
  - - '='
1172
1172
  - !ruby/object:Gem::Version
1173
- version: 2.9.1
1173
+ version: 2.9.2
1174
1174
  - !ruby/object:Gem::Dependency
1175
1175
  name: thin
1176
1176
  requirement: !ruby/object:Gem::Requirement
@@ -2483,7 +2483,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2483
2483
  - !ruby/object:Gem::Version
2484
2484
  version: '0'
2485
2485
  requirements: []
2486
- rubygems_version: 4.0.7
2486
+ rubygems_version: 4.0.9
2487
2487
  specification_version: 4
2488
2488
  summary: Automated Security Testing for CI/CD Pipelines & Beyond
2489
2489
  test_files: []