rubion 0.3.10 → 0.3.11
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 +4 -4
- data/README.md +148 -69
- data/lib/rubion/version.rb +1 -1
- data/rubion.gemspec +165 -22
- metadata +73 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 752260b2ea57b15d75df668a60d1e1a93734b3e86da997c57b852f6c77e0d292
|
|
4
|
+
data.tar.gz: 513e0b0af66f262f8998d481fdcf7eafd9652bb0d2c2381f49f868034cb6a597
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2b4c4b59d717ad577482a6da93ab5fda7cf42940ebcec8c3d695e889c81e63843b631f26324f2a64f9af5b67ab9126e4bb34c37b9bfdd03f55ed36069de928c6
|
|
7
|
+
data.tar.gz: 379406e86fb8989acbffdd1acf3252e5d1b726525e46b26b6b418e5e66bbe47620008589f0b5f8be56898617162333ba47d2e85885fbe052f3e417b1891bbf7a
|
data/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Rubion
|
|
2
2
|
|
|
3
3
|
**Rubion** is a security and version scanner for Ruby and JavaScript projects. It helps you identify vulnerabilities and outdated dependencies in your Ruby gems and NPM/JavaScript packages.
|
|
4
4
|
|
|
5
|
-
<img width="1237" height="671" alt="Screenshot 2025-11-14 at 10 48 12
|
|
5
|
+
<img width="1237" height="671" alt="Screenshot 2025-11-14 at 10 48 12 am" src="https://github.com/user-attachments/assets/a3d93452-c442-416a-9697-de59746e16ad" />
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
@@ -10,15 +10,19 @@
|
|
|
10
10
|
- 📦 **Gem Versions**: Identifies outdated Ruby gems with release dates and version counts
|
|
11
11
|
- 📛 **Package Vulnerabilities**: Scans for known security vulnerabilities in NPM/JavaScript packages using `npm audit` or `yarn audit`
|
|
12
12
|
- 📦 **Package Versions**: Identifies outdated NPM/JavaScript packages with release dates and version counts
|
|
13
|
+
- 🎯 **Direct Dependencies**: Highlights direct dependencies (from `Gemfile`/`package.json`) in bold text
|
|
14
|
+
- 🔍 **Filtering**: Option to show only direct dependencies with `--exclude-dependencies` flag
|
|
15
|
+
- 📊 **Sorting**: Sort results by any column (Name, Current, Date, Latest, Behind By(Time), Behind By(Versions))
|
|
13
16
|
- 📊 **Beautiful Reports**: Organized table output with severity icons (🔴 Critical, 🟠 High, 🟡 Medium, 🟢 Low, ⚪ Unknown)
|
|
14
17
|
- 🚀 **Fast & Efficient**: Parallel API processing (10 concurrent threads) for quick results
|
|
15
18
|
- ⚡ **Incremental Output**: Shows gem results immediately, then scans packages
|
|
16
19
|
- 📅 **Release Dates**: Fetches actual release dates from RubyGems.org and NPM registry
|
|
17
20
|
- 🔢 **Version Analysis**: Shows how many versions behind and time difference
|
|
21
|
+
- 📦 **Multi-Package Manager**: Supports both npm and yarn with automatic detection
|
|
18
22
|
|
|
19
23
|
## Installation
|
|
20
24
|
|
|
21
|
-
### Install from RubyGems
|
|
25
|
+
### Install from RubyGems
|
|
22
26
|
|
|
23
27
|
```bash
|
|
24
28
|
gem install rubion
|
|
@@ -27,7 +31,7 @@ gem install rubion
|
|
|
27
31
|
### Install from source
|
|
28
32
|
|
|
29
33
|
```bash
|
|
30
|
-
git clone https://github.com/
|
|
34
|
+
git clone https://github.com/bipashant/rubion.git
|
|
31
35
|
cd rubion
|
|
32
36
|
bundle install
|
|
33
37
|
rake install_local
|
|
@@ -35,7 +39,7 @@ rake install_local
|
|
|
35
39
|
|
|
36
40
|
## Usage
|
|
37
41
|
|
|
38
|
-
### Scan
|
|
42
|
+
### Basic Scan
|
|
39
43
|
|
|
40
44
|
Navigate to your project directory and run:
|
|
41
45
|
|
|
@@ -49,7 +53,7 @@ This will scan your project for:
|
|
|
49
53
|
- NPM/JavaScript package vulnerabilities (if `package.json` exists)
|
|
50
54
|
- Outdated NPM/JavaScript packages with release dates
|
|
51
55
|
|
|
52
|
-
### Scan
|
|
56
|
+
### Scan Options
|
|
53
57
|
|
|
54
58
|
```bash
|
|
55
59
|
# Scan only Ruby gems (skip NPM packages)
|
|
@@ -66,13 +70,57 @@ rubion scan -p
|
|
|
66
70
|
rubion scan
|
|
67
71
|
```
|
|
68
72
|
|
|
69
|
-
###
|
|
73
|
+
### Sorting Options
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Sort by column name (default: "Behind By(Time)" in descending order)
|
|
77
|
+
rubion scan --sort-by Name
|
|
78
|
+
rubion scan --sort-by Current
|
|
79
|
+
rubion scan --sort-by "Current version released on"
|
|
80
|
+
rubion scan --sort-by Latest
|
|
81
|
+
rubion scan --sort-by "Latest version released on"
|
|
82
|
+
rubion scan --sort-by "Behind By(Time)"
|
|
83
|
+
rubion scan --sort-by "Behind By(Versions)"
|
|
84
|
+
|
|
85
|
+
# Short form
|
|
86
|
+
rubion scan -s Name
|
|
87
|
+
|
|
88
|
+
# Sort in ascending order
|
|
89
|
+
rubion scan --sort-by Name --asc
|
|
90
|
+
rubion scan --sort-by Name --ascending
|
|
91
|
+
|
|
92
|
+
# Sort in descending order (default)
|
|
93
|
+
rubion scan --sort-by Name --desc
|
|
94
|
+
rubion scan --sort-by Name --descending
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Available columns for sorting:**
|
|
98
|
+
- `Name` - Package/gem name
|
|
99
|
+
- `Current` - Current version
|
|
100
|
+
- `Current version released on` or `Date` - Release date of current version
|
|
101
|
+
- `Latest` - Latest version
|
|
102
|
+
- `Latest version released on` or `Date` - Release date of latest version
|
|
103
|
+
- `Behind By(Time)` - Time difference (default sort, descending)
|
|
104
|
+
- `Behind By(Versions)` - Number of versions behind
|
|
105
|
+
|
|
106
|
+
### Filtering Options
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Show only direct dependencies (from Gemfile/package.json)
|
|
110
|
+
rubion scan --exclude-dependencies
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Direct dependencies are automatically highlighted in **bold text** in the output.
|
|
114
|
+
|
|
115
|
+
### View Help
|
|
70
116
|
|
|
71
117
|
```bash
|
|
72
118
|
rubion help
|
|
119
|
+
# or
|
|
120
|
+
rubion -h
|
|
73
121
|
```
|
|
74
122
|
|
|
75
|
-
### Check
|
|
123
|
+
### Check Version
|
|
76
124
|
|
|
77
125
|
```bash
|
|
78
126
|
rubion version
|
|
@@ -82,6 +130,8 @@ rubion -v
|
|
|
82
130
|
|
|
83
131
|
## Output Example
|
|
84
132
|
|
|
133
|
+
### Complete Scan Output
|
|
134
|
+
|
|
85
135
|
```
|
|
86
136
|
🔍 Scanning project at: /path/to/project
|
|
87
137
|
|
|
@@ -94,16 +144,22 @@ Gem Vulnerabilities:
|
|
|
94
144
|
+----------+--------+---------+------------------------------------------+
|
|
95
145
|
| 🔴 Critical | rexml | 3.4.1 | REXML has DoS condition when parsing... |
|
|
96
146
|
| 🟠 High | rack | 2.0.8 | Denial of Service vulnerability |
|
|
147
|
+
| 🟡 Medium | nokogiri | 1.13.8 | XML parsing vulnerability |
|
|
148
|
+
| 🟢 Low | json | 2.6.1 | JSON parsing issue |
|
|
97
149
|
+----------+--------+---------+------------------------------------------+
|
|
98
150
|
|
|
99
151
|
Gem Versions:
|
|
100
152
|
|
|
101
|
-
|
|
102
|
-
| Name
|
|
103
|
-
|
|
104
|
-
| sidekiq
|
|
105
|
-
|
|
|
106
|
-
|
|
153
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
154
|
+
| Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
|
|
155
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
156
|
+
| sidekiq | 7.30 | 3/5/2024 | 8.1 | 11/11/2025 | 1 year | 15 |
|
|
157
|
+
| rails | 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |
|
|
158
|
+
| fastimage | 2.2.7 | 2/2/2025 | 2.3.2 | 9/9/2025 | 7 months | 3 |
|
|
159
|
+
| nokogiri | 1.13.8 | 5/10/2023 | 1.15.0 | 8/20/2024 | 1 year 3 months | 12 |
|
|
160
|
+
| redis | 4.8.0 | 1/15/2023 | 5.0.0 | 11/1/2024 | 1 year 9 months | 20 |
|
|
161
|
+
| pg | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |
|
|
162
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
107
163
|
|
|
108
164
|
📦 Checking NPM packages... 45/45 ✓
|
|
109
165
|
|
|
@@ -112,18 +168,44 @@ Package Vulnerabilities:
|
|
|
112
168
|
+----------+--------+---------+------------------------------------------+
|
|
113
169
|
| Level | Name | Version | Vulnerability |
|
|
114
170
|
+----------+--------+---------+------------------------------------------+
|
|
115
|
-
|
|
|
171
|
+
| 🔴 Critical | lodash | 4.17.20 | Prototype pollution vulnerability |
|
|
172
|
+
| 🟠 High | moment | 2.29.1 | Wrong timezone date calculation |
|
|
173
|
+
| 🟡 Medium | axios | 0.21.1 | Server-Side Request Forgery (SSRF) |
|
|
174
|
+
| 🟢 Low | debug | 4.3.1 | Regular Expression Denial of Service |
|
|
116
175
|
+----------+--------+---------+------------------------------------------+
|
|
117
176
|
|
|
118
177
|
Package Versions:
|
|
119
178
|
|
|
120
|
-
|
|
121
|
-
| Name
|
|
122
|
-
|
|
123
|
-
|
|
|
124
|
-
|
|
179
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
180
|
+
| Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
|
|
181
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
182
|
+
| react | 17.0.2 | 3/3/2021 | 18.2.0 | 6/14/2023 | 2 years 3 months | 45 |
|
|
183
|
+
| vue | 3.2.0 | 8/5/2021 | 3.3.0 | 5/18/2023 | 1 year 9 months | 8 |
|
|
184
|
+
| jquery | 3.7.1 | 4/5/2024 | 3.9.1 | 10/11/2025 | 1 year | 8 |
|
|
185
|
+
| express | 4.18.0 | 4/25/2022 | 4.18.2 | 8/15/2023 | 1 year 3 months | 2 |
|
|
186
|
+
| webpack | 5.70.0 | 3/1/2022 | 5.88.0 | 6/1/2023 | 1 year 3 months | 18 |
|
|
187
|
+
| typescript | 4.7.0 | 5/24/2022 | 5.1.0 | 5/25/2023 | 1 year | 12 |
|
|
188
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
125
189
|
```
|
|
126
190
|
|
|
191
|
+
### Direct Dependencies Only (with --exclude-dependencies)
|
|
192
|
+
|
|
193
|
+
When using `rubion scan --exclude-dependencies`, only direct dependencies are shown:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
Gem Versions:
|
|
197
|
+
|
|
198
|
+
+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
199
|
+
| Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
|
|
200
|
+
+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
201
|
+
| **rails**| 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |
|
|
202
|
+
| **sidekiq**| 7.30 | 3/5/2024 | 8.1 | 11/11/2025 | 1 year | 15 |
|
|
203
|
+
| **pg** | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |
|
|
204
|
+
+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Note:** Direct dependencies (from `Gemfile` or `package.json`) are displayed in **bold text** in the version tables. In the example above, `rails`, `sidekiq`, and `pg` are direct dependencies from the `Gemfile`.
|
|
208
|
+
|
|
127
209
|
## Requirements
|
|
128
210
|
|
|
129
211
|
- Ruby 2.6 or higher
|
|
@@ -131,7 +213,7 @@ Package Versions:
|
|
|
131
213
|
- NPM or Yarn (optional, for JavaScript package scanning)
|
|
132
214
|
- `bundler-audit` (optional, for enhanced gem vulnerability detection)
|
|
133
215
|
|
|
134
|
-
**Note:** If both npm and yarn are available, Rubion will prompt you to choose which one to use.
|
|
216
|
+
**Note:** If both npm and yarn are available, Rubion will prompt you to choose which one to use. You can respond with 'y' for yarn or 'n' for npm.
|
|
135
217
|
|
|
136
218
|
### Installing bundler-audit (recommended)
|
|
137
219
|
|
|
@@ -141,6 +223,48 @@ gem install bundler-audit
|
|
|
141
223
|
|
|
142
224
|
**Note:** Without `bundler-audit`, gem vulnerability scanning will be skipped.
|
|
143
225
|
|
|
226
|
+
## How It Works
|
|
227
|
+
|
|
228
|
+
Rubion uses a modular architecture:
|
|
229
|
+
|
|
230
|
+
1. **Scanner** (`lib/rubion/scanner.rb`): Executes various commands to scan for vulnerabilities and outdated versions
|
|
231
|
+
- `bundle-audit check` for gem vulnerabilities
|
|
232
|
+
- `bundle outdated --parseable` for gem versions
|
|
233
|
+
- `npm audit --json` or `yarn audit --json` for package vulnerabilities (auto-detects which is available)
|
|
234
|
+
- `npm outdated --json` or `yarn outdated` for package versions (auto-detects which is available)
|
|
235
|
+
- Fetches release dates and version data from RubyGems.org and NPM registry APIs
|
|
236
|
+
- Uses parallel processing (10 concurrent threads) for fast API calls
|
|
237
|
+
- Prompts user to choose between npm and yarn if both are available
|
|
238
|
+
- Parses `Gemfile` and `package.json` to identify direct dependencies
|
|
239
|
+
|
|
240
|
+
2. **Reporter** (`lib/rubion/reporter.rb`): Formats scan results into beautiful terminal tables using `terminal-table`
|
|
241
|
+
- Adds severity icons (🔴 🟠 🟡 🟢 ⚪)
|
|
242
|
+
- Formats dates, time differences, and version counts
|
|
243
|
+
- Supports incremental output (gems first, then packages)
|
|
244
|
+
- Highlights direct dependencies in bold text
|
|
245
|
+
- Supports sorting by any column with visual indicators (↑/↓)
|
|
246
|
+
- Filters results based on `--exclude-dependencies` flag
|
|
247
|
+
|
|
248
|
+
3. **CLI** (`lib/rubion.rb`): Provides the command-line interface
|
|
249
|
+
- Parses command-line options (`--gems-only`, `--packages-only`, `--sort-by`, `--asc`, `--desc`, `--exclude-dependencies`)
|
|
250
|
+
- Coordinates scanning and reporting
|
|
251
|
+
|
|
252
|
+
For detailed information about data collection and mapping, see [HOW_IT_WORKS.md](HOW_IT_WORKS.md).
|
|
253
|
+
|
|
254
|
+
## Performance
|
|
255
|
+
|
|
256
|
+
Rubion is optimized for speed:
|
|
257
|
+
|
|
258
|
+
- **Parallel API Processing**: Uses 10 concurrent threads to fetch version data from RubyGems.org and NPM registry
|
|
259
|
+
- **Single API Call Per Package**: Fetches all necessary data (dates, version list) in one request
|
|
260
|
+
- **Incremental Output**: Shows gem results immediately, then scans packages (better UX)
|
|
261
|
+
- **Progress Indicators**: Shows real-time progress like "Checking Ruby gems... 10/54"
|
|
262
|
+
|
|
263
|
+
Typical scan times:
|
|
264
|
+
- Gems only: ~4-5 seconds (for ~140 gems)
|
|
265
|
+
- Packages only: ~3-4 seconds (for ~50 packages)
|
|
266
|
+
- Both: ~7-9 seconds total
|
|
267
|
+
|
|
144
268
|
## Development
|
|
145
269
|
|
|
146
270
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt.
|
|
@@ -169,30 +293,6 @@ gem build rubion.gemspec
|
|
|
169
293
|
rake install_local
|
|
170
294
|
```
|
|
171
295
|
|
|
172
|
-
## How It Works
|
|
173
|
-
|
|
174
|
-
Rubion uses a modular architecture:
|
|
175
|
-
|
|
176
|
-
1. **Scanner** (`lib/rubion/scanner.rb`): Executes various commands to scan for vulnerabilities and outdated versions
|
|
177
|
-
- `bundle-audit check` for gem vulnerabilities
|
|
178
|
-
- `bundle outdated --parseable` for gem versions
|
|
179
|
-
- `npm audit --json` or `yarn audit --json` for package vulnerabilities (auto-detects which is available)
|
|
180
|
-
- `npm outdated --json` or `yarn outdated --json` for package versions (auto-detects which is available)
|
|
181
|
-
- Fetches release dates and version data from RubyGems.org and NPM registry APIs
|
|
182
|
-
- Uses parallel processing (10 concurrent threads) for fast API calls
|
|
183
|
-
- Prompts user to choose between npm and yarn if both are available
|
|
184
|
-
|
|
185
|
-
2. **Reporter** (`lib/rubion/reporter.rb`): Formats scan results into beautiful terminal tables using `terminal-table`
|
|
186
|
-
- Adds severity icons (🔴 🟠 🟡 🟢 ⚪)
|
|
187
|
-
- Formats dates, time differences, and version counts
|
|
188
|
-
- Supports incremental output (gems first, then packages)
|
|
189
|
-
|
|
190
|
-
3. **CLI** (`lib/rubion.rb`): Provides the command-line interface
|
|
191
|
-
- Parses command-line options (`--gems-only`, `--packages-only`)
|
|
192
|
-
- Coordinates scanning and reporting
|
|
193
|
-
|
|
194
|
-
For detailed information about data collection and mapping, see [HOW_IT_WORKS.md](HOW_IT_WORKS.md).
|
|
195
|
-
|
|
196
296
|
## Extending Rubion
|
|
197
297
|
|
|
198
298
|
Rubion is designed to be easily extensible. To add new scanners:
|
|
@@ -218,7 +318,7 @@ end
|
|
|
218
318
|
|
|
219
319
|
## Contributing
|
|
220
320
|
|
|
221
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
|
321
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/bipashant/rubion.
|
|
222
322
|
|
|
223
323
|
1. Fork it
|
|
224
324
|
2. Create your feature branch (`git checkout -b feature/my-new-feature`)
|
|
@@ -230,36 +330,16 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/yourus
|
|
|
230
330
|
|
|
231
331
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
232
332
|
|
|
233
|
-
## Code of Conduct
|
|
234
|
-
|
|
235
|
-
Everyone interacting in the Rubion project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
|
|
236
|
-
|
|
237
333
|
## Support
|
|
238
334
|
|
|
239
335
|
If you have any questions or need help, please:
|
|
240
|
-
- Open an issue on GitHub
|
|
336
|
+
- Open an issue on GitHub: https://github.com/bipashant/rubion/issues
|
|
241
337
|
- Check the documentation
|
|
242
|
-
-
|
|
243
|
-
|
|
244
|
-
## Performance
|
|
245
|
-
|
|
246
|
-
Rubion is optimized for speed:
|
|
247
|
-
|
|
248
|
-
- **Parallel API Processing**: Uses 10 concurrent threads to fetch version data from RubyGems.org and NPM registry
|
|
249
|
-
- **Single API Call Per Package**: Fetches all necessary data (dates, version list) in one request
|
|
250
|
-
- **Incremental Output**: Shows gem results immediately, then scans packages (better UX)
|
|
251
|
-
- **Progress Indicators**: Shows real-time progress like "Checking Ruby gems... 10/54"
|
|
252
|
-
|
|
253
|
-
Typical scan times:
|
|
254
|
-
- Gems only: ~4-5 seconds (for ~140 gems)
|
|
255
|
-
- Packages only: ~3-4 seconds (for ~50 packages)
|
|
256
|
-
- Both: ~7-9 seconds total
|
|
338
|
+
- Review the [CHANGELOG.md](CHANGELOG.md) for recent changes
|
|
257
339
|
|
|
258
340
|
## Roadmap
|
|
259
341
|
|
|
260
342
|
Future features planned:
|
|
261
|
-
- [ ] Sorting options (by severity, name, date, etc.)
|
|
262
|
-
- [ ] Filtering options (by severity, outdated threshold, etc.)
|
|
263
343
|
- [ ] Export formats (JSON, CSV, HTML)
|
|
264
344
|
- [ ] Summary statistics
|
|
265
345
|
- [ ] Update command suggestions
|
|
@@ -275,4 +355,3 @@ Future features planned:
|
|
|
275
355
|
|
|
276
356
|
- Built with [terminal-table](https://github.com/tj/terminal-table)
|
|
277
357
|
- Inspired by tools like `bundle-audit` and `npm audit`
|
|
278
|
-
|
data/lib/rubion/version.rb
CHANGED
data/rubion.gemspec
CHANGED
|
@@ -1,36 +1,179 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
3
|
+
require_relative 'lib/rubion/version'
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |spec|
|
|
6
|
-
spec.name =
|
|
6
|
+
spec.name = 'rubion'
|
|
7
7
|
spec.version = Rubion::VERSION
|
|
8
|
-
spec.authors = [
|
|
9
|
-
spec.email = [
|
|
8
|
+
spec.authors = ['bipashant']
|
|
9
|
+
spec.email = ['bs_chapagain@hotmail.com']
|
|
10
10
|
|
|
11
|
-
spec.summary =
|
|
12
|
-
spec.description =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
spec.required_ruby_version = ">= 2.6.0"
|
|
11
|
+
spec.summary = 'Security and version scanner for Ruby and JavaScript projects'
|
|
12
|
+
spec.description = <<~DESC
|
|
13
|
+
Rubion is a comprehensive security and version scanner for Ruby and JavaScript projects.
|
|
14
|
+
It helps you identify vulnerabilities and outdated dependencies in your Ruby gems and NPM/JavaScript packages.
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
## Features
|
|
17
|
+
|
|
18
|
+
- 📛 Gem Vulnerabilities: Scans for known security vulnerabilities in Ruby gems using bundle-audit
|
|
19
|
+
- 📦 Gem Versions: Identifies outdated Ruby gems with release dates and version counts
|
|
20
|
+
- 📛 Package Vulnerabilities: Scans for known security vulnerabilities in NPM/JavaScript packages
|
|
21
|
+
- 📦 Package Versions: Identifies outdated NPM/JavaScript packages with release dates
|
|
22
|
+
- 🎯 Direct Dependencies: Highlights direct dependencies (from Gemfile/package.json) in bold text
|
|
23
|
+
- 🔍 Filtering: Option to show only direct dependencies with --exclude-dependencies flag
|
|
24
|
+
- 📊 Sorting: Sort results by any column (Name, Current, Date, Latest, Behind By(Time), Behind By(Versions))
|
|
25
|
+
- 🚀 Fast & Efficient: Parallel API processing (10 concurrent threads) for quick results
|
|
26
|
+
- 📦 Multi-Package Manager: Supports both npm and yarn with automatic detection
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
gem install rubion
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Or add to your Gemfile:
|
|
35
|
+
|
|
36
|
+
```ruby
|
|
37
|
+
gem 'rubion', '~> 0.3.10'
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
### Basic Scan
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
rubion scan
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Scan Options
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Scan only Ruby gems
|
|
52
|
+
rubion scan --gems-only
|
|
53
|
+
# or
|
|
54
|
+
rubion scan -g
|
|
55
|
+
|
|
56
|
+
# Scan only NPM packages
|
|
57
|
+
rubion scan --packages-only
|
|
58
|
+
# or
|
|
59
|
+
rubion scan -p
|
|
60
|
+
|
|
61
|
+
# Sort by column
|
|
62
|
+
rubion scan --sort-by Name
|
|
63
|
+
rubion scan --sort-by "Behind By(Time)" --desc
|
|
64
|
+
|
|
65
|
+
# Show only direct dependencies
|
|
66
|
+
rubion scan --exclude-dependencies
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Example Output
|
|
70
|
+
|
|
71
|
+
Complete Scan Output:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
🔍 Scanning project at: /path/to/project
|
|
75
|
+
|
|
76
|
+
📦 Checking Ruby gems... 139/139 ✓
|
|
77
|
+
|
|
78
|
+
Gem Vulnerabilities:
|
|
79
|
+
|
|
80
|
+
+----------+--------+---------+------------------------------------------+
|
|
81
|
+
| Level | Name | Version | Vulnerability |
|
|
82
|
+
+----------+--------+---------+------------------------------------------+
|
|
83
|
+
| 🔴 Critical | rexml | 3.4.1 | REXML has DoS condition when parsing... |
|
|
84
|
+
| 🟠 High | rack | 2.0.8 | Denial of Service vulnerability |
|
|
85
|
+
| 🟡 Medium | nokogiri | 1.13.8 | XML parsing vulnerability |
|
|
86
|
+
| 🟢 Low | json | 2.6.1 | JSON parsing issue |
|
|
87
|
+
+----------+--------+---------+------------------------------------------+
|
|
88
|
+
|
|
89
|
+
Gem Versions:
|
|
90
|
+
|
|
91
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
92
|
+
| Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
|
|
93
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
94
|
+
| sidekiq | 7.30 | 3/5/2024 | 8.1 | 11/11/2025 | 1 year | 15 |
|
|
95
|
+
| rails | 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |
|
|
96
|
+
| fastimage | 2.2.7 | 2/2/2025 | 2.3.2 | 9/9/2025 | 7 months | 3 |
|
|
97
|
+
| nokogiri | 1.13.8 | 5/10/2023 | 1.15.0 | 8/20/2024 | 1 year 3 months | 12 |
|
|
98
|
+
| redis | 4.8.0 | 1/15/2023 | 5.0.0 | 11/1/2024 | 1 year 9 months | 20 |
|
|
99
|
+
| pg | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |
|
|
100
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
101
|
+
|
|
102
|
+
📦 Checking NPM packages... 45/45 ✓
|
|
103
|
+
|
|
104
|
+
Package Vulnerabilities:
|
|
105
|
+
|
|
106
|
+
+----------+--------+---------+------------------------------------------+
|
|
107
|
+
| Level | Name | Version | Vulnerability |
|
|
108
|
+
+----------+--------+---------+------------------------------------------+
|
|
109
|
+
| 🔴 Critical | lodash | 4.17.20 | Prototype pollution vulnerability |
|
|
110
|
+
| 🟠 High | moment | 2.29.1 | Wrong timezone date calculation |
|
|
111
|
+
| 🟡 Medium | axios | 0.21.1 | Server-Side Request Forgery (SSRF) |
|
|
112
|
+
| 🟢 Low | debug | 4.3.1 | Regular Expression Denial of Service |
|
|
113
|
+
+----------+--------+---------+------------------------------------------+
|
|
114
|
+
|
|
115
|
+
Package Versions:
|
|
116
|
+
|
|
117
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
118
|
+
| Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
|
|
119
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
120
|
+
| react | 17.0.2 | 3/3/2021 | 18.2.0 | 6/14/2023 | 2 years 3 months | 45 |
|
|
121
|
+
| vue | 3.2.0 | 8/5/2021 | 3.3.0 | 5/18/2023 | 1 year 9 months | 8 |
|
|
122
|
+
| jquery | 3.7.1 | 4/5/2024 | 3.9.1 | 10/11/2025 | 1 year | 8 |
|
|
123
|
+
| express | 4.18.0 | 4/25/2022 | 4.18.2 | 8/15/2023 | 1 year 3 months | 2 |
|
|
124
|
+
| webpack | 5.70.0 | 3/1/2022 | 5.88.0 | 6/1/2023 | 1 year 3 months | 18 |
|
|
125
|
+
| typescript | 4.7.0 | 5/24/2022 | 5.1.0 | 5/25/2023 | 1 year | 12 |
|
|
126
|
+
+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Direct Dependencies Only (with --exclude-dependencies):
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Gem Versions:
|
|
133
|
+
|
|
134
|
+
+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
135
|
+
| Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
|
|
136
|
+
+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
137
|
+
| **rails**| 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |
|
|
138
|
+
| **sidekiq**| 7.30 | 3/5/2024 | 8.1 | 11/11/2025 | 1 year | 15 |
|
|
139
|
+
| **pg** | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |
|
|
140
|
+
+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Note: Direct dependencies (from Gemfile or package.json) are displayed in bold text in the version tables.
|
|
144
|
+
|
|
145
|
+
## Requirements
|
|
146
|
+
|
|
147
|
+
- Ruby 2.6 or higher
|
|
148
|
+
- Bundler (for Ruby gem scanning)
|
|
149
|
+
- NPM or Yarn (optional, for JavaScript package scanning)
|
|
150
|
+
- bundler-audit (optional, install with: gem install bundler-audit)
|
|
151
|
+
|
|
152
|
+
## Documentation
|
|
153
|
+
|
|
154
|
+
For more information, visit: https://github.com/bipashant/rubion
|
|
155
|
+
DESC
|
|
156
|
+
spec.homepage = 'https://github.com/bipashant/rubion'
|
|
157
|
+
spec.license = 'MIT'
|
|
158
|
+
spec.required_ruby_version = '>= 2.6.0'
|
|
159
|
+
|
|
160
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
|
161
|
+
spec.metadata['source_code_uri'] = 'https://github.com/bipashant/rubion'
|
|
162
|
+
spec.metadata['changelog_uri'] = 'https://github.com/bipashant/rubion/blob/main/CHANGELOG.md'
|
|
163
|
+
spec.metadata['bug_tracker_uri'] = 'https://github.com/bipashant/rubion/issues'
|
|
164
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
21
165
|
|
|
22
166
|
# Specify which files should be added to the gem when it is released.
|
|
23
|
-
spec.files = Dir.glob(
|
|
24
|
-
spec.bindir =
|
|
25
|
-
spec.executables = [
|
|
26
|
-
spec.require_paths = [
|
|
167
|
+
spec.files = Dir.glob('{bin,lib}/**/*') + %w[README.md LICENSE Gemfile rubion.gemspec]
|
|
168
|
+
spec.bindir = 'bin'
|
|
169
|
+
spec.executables = ['rubion']
|
|
170
|
+
spec.require_paths = ['lib']
|
|
27
171
|
|
|
28
172
|
# Runtime dependencies
|
|
29
|
-
spec.add_dependency
|
|
173
|
+
spec.add_dependency 'terminal-table', '~> 3.0'
|
|
30
174
|
|
|
31
175
|
# Development dependencies
|
|
32
|
-
spec.add_development_dependency
|
|
33
|
-
spec.add_development_dependency
|
|
34
|
-
spec.add_development_dependency
|
|
176
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
|
177
|
+
spec.add_development_dependency 'rspec', '~> 3.12'
|
|
178
|
+
spec.add_development_dependency 'rubocop', '~> 1.21'
|
|
35
179
|
end
|
|
36
|
-
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubion
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- bipashant
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-11-
|
|
11
|
+
date: 2025-11-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: terminal-table
|
|
@@ -66,9 +66,76 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '1.21'
|
|
69
|
-
description: Rubion
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
description: "Rubion is a comprehensive security and version scanner for Ruby and
|
|
70
|
+
JavaScript projects.\nIt helps you identify vulnerabilities and outdated dependencies
|
|
71
|
+
in your Ruby gems and NPM/JavaScript packages.\n\n## Features\n\n- \U0001F4DB Gem
|
|
72
|
+
Vulnerabilities: Scans for known security vulnerabilities in Ruby gems using bundle-audit\n-
|
|
73
|
+
\U0001F4E6 Gem Versions: Identifies outdated Ruby gems with release dates and version
|
|
74
|
+
counts\n- \U0001F4DB Package Vulnerabilities: Scans for known security vulnerabilities
|
|
75
|
+
in NPM/JavaScript packages\n- \U0001F4E6 Package Versions: Identifies outdated NPM/JavaScript
|
|
76
|
+
packages with release dates\n- \U0001F3AF Direct Dependencies: Highlights direct
|
|
77
|
+
dependencies (from Gemfile/package.json) in bold text\n- \U0001F50D Filtering: Option
|
|
78
|
+
to show only direct dependencies with --exclude-dependencies flag\n- \U0001F4CA
|
|
79
|
+
Sorting: Sort results by any column (Name, Current, Date, Latest, Behind By(Time),
|
|
80
|
+
Behind By(Versions))\n- \U0001F680 Fast & Efficient: Parallel API processing (10
|
|
81
|
+
concurrent threads) for quick results\n- \U0001F4E6 Multi-Package Manager: Supports
|
|
82
|
+
both npm and yarn with automatic detection\n\n## Installation\n\n```bash\ngem install
|
|
83
|
+
rubion\n```\n\nOr add to your Gemfile:\n\n```ruby\ngem 'rubion', '~> 0.3.10'\n```\n\n##
|
|
84
|
+
Usage\n\n### Basic Scan\n\n```bash\nrubion scan\n```\n\n### Scan Options\n\n```bash\n#
|
|
85
|
+
Scan only Ruby gems\nrubion scan --gems-only\n# or\nrubion scan -g\n\n# Scan only
|
|
86
|
+
NPM packages\nrubion scan --packages-only\n# or\nrubion scan -p\n\n# Sort by column\nrubion
|
|
87
|
+
scan --sort-by Name\nrubion scan --sort-by \"Behind By(Time)\" --desc\n\n# Show
|
|
88
|
+
only direct dependencies\nrubion scan --exclude-dependencies\n```\n\n### Example
|
|
89
|
+
Output\n\nComplete Scan Output:\n\n```\n\U0001F50D Scanning project at: /path/to/project\n\n\U0001F4E6
|
|
90
|
+
Checking Ruby gems... 139/139 ✓\n\nGem Vulnerabilities:\n\n+----------+--------+---------+------------------------------------------+\n|
|
|
91
|
+
Level | Name | Version | Vulnerability |\n+----------+--------+---------+------------------------------------------+\n|
|
|
92
|
+
\U0001F534 Critical | rexml | 3.4.1 | REXML has DoS condition when parsing...
|
|
93
|
+
|\n| \U0001F7E0 High | rack | 2.0.8 | Denial of Service vulnerability |\n|
|
|
94
|
+
\U0001F7E1 Medium | nokogiri | 1.13.8 | XML parsing vulnerability |\n|
|
|
95
|
+
\U0001F7E2 Low | json | 2.6.1 | JSON parsing issue |\n+----------+--------+---------+------------------------------------------+\n\nGem
|
|
96
|
+
Versions:\n\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
|
|
97
|
+
Name | Current | Current version released on | Latest | Latest version
|
|
98
|
+
released on | Behind By(Time) ↓ | Behind By(Versions) |\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
|
|
99
|
+
sidekiq | 7.30 | 3/5/2024 | 8.1 | 11/11/2025 |
|
|
100
|
+
1 year | 15 |\n| rails | 7.0.0 | 12/15/2022
|
|
101
|
+
\ | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |\n|
|
|
102
|
+
fastimage | 2.2.7 | 2/2/2025 | 2.3.2 | 9/9/2025 |
|
|
103
|
+
7 months | 3 |\n| nokogiri | 1.13.8 | 5/10/2023
|
|
104
|
+
\ | 1.15.0 | 8/20/2024 | 1 year 3 months | 12 |\n|
|
|
105
|
+
redis | 4.8.0 | 1/15/2023 | 5.0.0 | 11/1/2024 |
|
|
106
|
+
1 year 9 months | 20 |\n| pg | 1.4.0 | 3/20/2023
|
|
107
|
+
\ | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n\n\U0001F4E6
|
|
108
|
+
Checking NPM packages... 45/45 ✓\n\nPackage Vulnerabilities:\n\n+----------+--------+---------+------------------------------------------+\n|
|
|
109
|
+
Level | Name | Version | Vulnerability |\n+----------+--------+---------+------------------------------------------+\n|
|
|
110
|
+
\U0001F534 Critical | lodash | 4.17.20 | Prototype pollution vulnerability |\n|
|
|
111
|
+
\U0001F7E0 High | moment | 2.29.1 | Wrong timezone date calculation |\n|
|
|
112
|
+
\U0001F7E1 Medium | axios | 0.21.1 | Server-Side Request Forgery (SSRF) |\n|
|
|
113
|
+
\U0001F7E2 Low | debug | 4.3.1 | Regular Expression Denial of Service |\n+----------+--------+---------+------------------------------------------+\n\nPackage
|
|
114
|
+
Versions:\n\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
|
|
115
|
+
Name | Current | Current version released on | Latest | Latest version
|
|
116
|
+
released on | Behind By(Time) ↓ | Behind By(Versions) |\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
|
|
117
|
+
react | 17.0.2 | 3/3/2021 | 18.2.0 | 6/14/2023 |
|
|
118
|
+
2 years 3 months | 45 |\n| vue | 3.2.0 | 8/5/2021
|
|
119
|
+
\ | 3.3.0 | 5/18/2023 | 1 year 9 months | 8 |\n|
|
|
120
|
+
jquery | 3.7.1 | 4/5/2024 | 3.9.1 | 10/11/2025 |
|
|
121
|
+
1 year | 8 |\n| express | 4.18.0 | 4/25/2022
|
|
122
|
+
\ | 4.18.2 | 8/15/2023 | 1 year 3 months | 2 |\n|
|
|
123
|
+
webpack | 5.70.0 | 3/1/2022 | 5.88.0 | 6/1/2023 |
|
|
124
|
+
1 year 3 months | 18 |\n| typescript | 4.7.0 | 5/24/2022
|
|
125
|
+
\ | 5.1.0 | 5/25/2023 | 1 year | 12 |\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n```\n\nDirect
|
|
126
|
+
Dependencies Only (with --exclude-dependencies):\n\n```\nGem Versions:\n\n+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
|
|
127
|
+
Name | Current | Current version released on | Latest | Latest version released
|
|
128
|
+
on | Behind By(Time) ↓ | Behind By(Versions) |\n+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
|
|
129
|
+
**rails**| 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 |
|
|
130
|
+
1 year 10 months | 8 |\n| **sidekiq**| 7.30 | 3/5/2024 |
|
|
131
|
+
8.1 | 11/11/2025 | 1 year | 15 |\n| **pg**
|
|
132
|
+
\ | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1
|
|
133
|
+
year 5 months | 6 |\n+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n```\n\nNote:
|
|
134
|
+
Direct dependencies (from Gemfile or package.json) are displayed in bold text in
|
|
135
|
+
the version tables.\n\n## Requirements\n\n- Ruby 2.6 or higher\n- Bundler (for Ruby
|
|
136
|
+
gem scanning)\n- NPM or Yarn (optional, for JavaScript package scanning)\n- bundler-audit
|
|
137
|
+
(optional, install with: gem install bundler-audit)\n\n## Documentation\n\nFor more
|
|
138
|
+
information, visit: https://github.com/bipashant/rubion\n"
|
|
72
139
|
email:
|
|
73
140
|
- bs_chapagain@hotmail.com
|
|
74
141
|
executables:
|
|
@@ -93,6 +160,7 @@ metadata:
|
|
|
93
160
|
source_code_uri: https://github.com/bipashant/rubion
|
|
94
161
|
changelog_uri: https://github.com/bipashant/rubion/blob/main/CHANGELOG.md
|
|
95
162
|
bug_tracker_uri: https://github.com/bipashant/rubion/issues
|
|
163
|
+
rubygems_mfa_required: 'true'
|
|
96
164
|
post_install_message:
|
|
97
165
|
rdoc_options: []
|
|
98
166
|
require_paths:
|